2012-12-12 4 views
0

나는 [이 사이트의 다른 사용자로부터 정보를 얻은 덕분에!]이 코드 조각을 가지고 있으므로 수정할 필요가있는 하나의 필드가 아닌 여러 필드를 확인할 수 있습니다. 두 번째 함수에 인수를 추가해야하거나 변수 checkString을 배열로 변환해야하는지 잘 모르겠습니다.인수를 추가하거나 배열을 추가 하시겠습니까?

function getField(fieldType, fieldTitle) { 
    var docTags = document.getElementsByTagName(fieldType); 
    for (var i = 0; i < docTags.length; i++) { 
     if (docTags[i].title == fieldTitle) { 
      return docTags[i] 
     } 
    } 
} 

function checkField() { 
    var checkString = getField('input', 'fieldtocheck').value; 
    if (checkString != "") { 
     if (/[^A-Za-z\d]/.test(checkString)) { 
      alert("Please enter only alphanumeric characters for the field fieldtocheck"); 
      return (false); 
     } 
    } 
} 

"getfield"를 "checkfield"에 인수로 제공하는 것이 가장 좋은 방법이라고 생각합니다.하지만 어떻게해야합니까?

도움을 주시면 감사하겠습니다.

나는 당신의 기능은 더 일반적인하고 필드를 식별하는 클래스를 사용하는 것이
+1

배열로 변환한다는 것은 무엇을 의미합니까? 무엇의 배열? – 0x499602D2

+0

필자의 말씨가 잘못되었을 수 있지만 변수 "checkString"을 돌려 여러 값을 포함하도록합니다. 그게 배열 인 것 같아? – sansSpoon

답변

2

:

function checkFields(className, regex) { 
    var inputs = document.getElementsByClassName(className); 

    for (var i = 0; i < inputs.length; i++) { 
     if (!regex.match(inputs[i].value)) { 
      return false; 
     } 
    } 

    return true; 
} 

function validate() { 
    if (!checkFields('alphanum', /^[A-Za-z\d]+$/)) { 
     alert('Please enter only alphanumeric characters'); 
    } 
} 

그리고 당신의 HTML은 다음과 같이 수 :

<input type="text" class="alphanum" /> 

훨씬 간단 (더 나은, IMO) 접근 방식은 jQuery validation plugin을 사용하는 것입니다.

+0

안녕하세요 블렌더, 고마워요. 이 코드는 쉐어 포인트 사이트로 이동하여 필드에 클래스를 추가하는 것이 [내 경험으로] 복잡 할 수 있습니다. 특히 우리가 fieldTitle 함수를 사용하는 이유 인리스트 양식 필드를 형성하십시오. 어쨌든 나는 네가 어디로 가는지 볼 수있어. 내가 연극을하고 내가 무엇을 생각해 낼지 지켜 볼거야. – sansSpoon

관련 문제