2011-05-12 2 views
0

연락처 양식의 대부분 입력 항목에 대해 실행될 코드 시퀀스가 ​​있습니다. 코드 라인을 위해서이 함수를 함수로 사용하고 싶습니다. 다음 블록의 예입니다반복적 인 코드 블록을 함수로 변환하는 방법

$('#country_code').blur(function() { 
var countryCode = $('#country_code').val(); 
    if(validateNumber(countryCode) == true) { 
     if(countryCode.lastIndexOf('+') != 0) { 
      countryCode = countryCode.replace('+', ''); 
      $('#country_code').val('+' + countryCode); 
     } 
    } 
    else { 
     countryCode = ''; 
     $('#country_code').val(countryCode); 
    } 
}); 

와 나는 같은 함수를 만들려면 다음과 다음과 같은

function validateElements(elementName, variableName, validationFunction, indexValue, indexPosition) { 
    $(elementName).blur(function() { 
     var variableName = $(elementName).val(); 
     if(validationFunction(variableName) == true) { 
      if(variableName.lastIndexOf(indexValue) != indexPosition) { 
       variableName = variableName.replace(indexValue, ''); 
       $(elementName).val(indexValue + variableName); 
      } 
     } 
     else { 
      variableName = ''; 
      $(elementname).val(variableName); 
     } 
    }); 
} 

하는 내가 함수를 호출 것 :

validateElements('#country_code', 'countryCode', 'validateNumber', '+', 0); 
+4

귀하의 질문은 무엇입니까? – DavidGouge

+0

질문 제목도 혼란 스러웠습니다 – locrizak

+0

질문 : 어떻게이 작업을 할 수 있습니까? 지금 당장은 그렇지 않습니다. – Tony

답변

0

다음과 같이 함수를 호출하도록 변경하십시오.

validateElements($('#country_code'), 'countryCode', 'validateNumber', '+', 0); 

그리고 귀하의 기능을 변경하십시오 :

function validateElements(obj, variableName, validationFunction, indexValue, indexPosition) { 
    obj.blur(function() { 
     var variableName = obj.val(); 
     if(validationFunction(variableName) == true) { 
      if(variableName.lastIndexOf(indexValue) != indexPosition) { 
       variableName = variableName.replace(indexValue, ''); 
       obj.val(indexValue + variableName); 
      } 
     } 
     else { 
      variableName = ''; 
      obj.val(variableName); 
     } 
    }); 
} 
+0

시도해 봤지만 여전히 운이 없었습니다. – Tony

+0

할 일은 코드 줄을 한 번에 한 줄씩 주석 처리하고 코드를 실행 한 다음 작동하는시기를 확인하는 것입니다. "작동하지 않는다"고 말하면, blur 이벤트가 호출되고 이벤트 내부의 내용이 올바르지 않거나 blur 이벤트가 호출되지 않는다는 것을 의미합니까? –

관련 문제