2012-05-23 5 views
0

필자는 입력 상자 중 하나를 클릭하면 유효성 검사 오류를 제거해야하는 일부 코드가있는 점을 발견했습니다. 하지만 표준 removeClass를 사용하면 다시 제출할 수 없기 때문에 원하는 영향을받지 못합니다.클래스/스타일 제거 onclick

당신은 내가 여기 무슨 뜻인지 볼 수 있습니다 http://jsfiddle.net/5V7Uv/5/

HTML :

<form method="post" name="form1" action="/whatmask_output/"> 
    <div id="sectioncol"> 
     <label for="input-whatmask">whatmask</label> 
     <input type="text" name="input-whatmask" id="input-whatmask" 
     size="22" /> 
    </div> 
    <div id="sectioncol"> 
     <label for="input-whois">whois</label> 
     <input type="text" name="input-whois" id="input-whois" size="22" 
     /> 
    </div> 
    <input type="submit" value="submit" "whatmask_input" id="btn-search" align="right" 
    /> 
</form>​ 

자바 스크립트 :

var hasError = false; 
$("form").submit(function (e) { 
    var searchReg = /^[a-zA-Z0-9\s\/\.]+$/; 
    if ($("#input-whatmask").val() != '' && $("#input-whois").val() != '') { 
     alert('Enter only one field at a time.'); 
     return false; 
    } 
    if (hasError) return false; 
    if ($("#input-whatmask").val() != '') { 
     if (!searchReg.test($("#input-whatmask").val())) { 
      $("#input-whatmask").addClass("errorinput").after('<span class="error">Enter a valid value.</span>'); 
      hasError = true; 
      return false; 
     } 
    } else if ($("#input-whois").val() != '') { 
     if (!searchReg.test($("#input-whois").val())) { 
      $("#input-whois").addClass("errorinput").after('<span class="error">Enter a valid value.</span>'); 
      hasError = true; 
      return false; 
     } 
    } else { 
     alert('No values entered!'); 
     return false; 
    } 
}); 
$("#input-whatmask, #input-whois").click(function() { 
    $("#input-whatmask, #input-whois").removeClass("errorinput"); 
    $("#input-whatmask, #input-whois").removeClass("error"); 
    $("#input-whatmask, #input-whois").val(''); 
    if ($(this).hasClass('errorinput')) { 
     $(this).next().remove(); 
     $(this).removeClass("errorinput"); 
     hasError = false; 
    } 
});​ 

답변

0
if (hasError) return false; 

당신의 hasError 변수가수록이 줄은, 범죄자처럼 보인다 첫 번째 실행 후 true로 설정합니다 (오류가있는 경우 물론), false로 다시 설정되지 않습니다.

이 줄 끝에서 hasError = false을 추가

시도 :

$("form").submit(function (e) {