2012-01-10 2 views
5

키를 입력 할 때 양식의 내용을 제출해야하지만 양식에 오류 메시지가없는 경우에만 제출해야합니다. 나는 다음과 같은 기능 구축 : 혼란 변수 기능 error_m에 의해 반환 된 오류 메시지가 표시되고이 함수에서양식 제출 keyCode == "enter"(13)

$(targetFormID).submit(function (e) { 
    var mess = error_m(targetDiv); 
    if (e.keyCode == 13 && mess.length > 0) { 
     e.preventDefault(); 
     e.stopPropagation(); 
    } 
    if (mess.length == 0 && e.keyCode == 13) $(targetFormID).submit(); 
}); 

를, 나머지는 간단한 코드 condtion이지만 작동하지 않습니다.

도움이 필요합니다.

+3

"작동하지 않습니다">. < –

+0

은 error_m 함수를 보여줍니다. –

답변

7

키를 입력하면 양식을 제출하는 것이 기본 브라우저 동작입니다. 그것을 망쳐 놓지 마십시오. submit 이벤트의 양식을 확인하십시오.

$(targetFormID).submit(function (e) { 
    var mess = error_m(targetDiv); 
    if (mess.length > 0) { 
     e.preventDefault(); 
    } 
}); 

다른 가능한 문제 : targetFormID은 무엇입니까? 실제로 요소 ID를 포함하는 문자열의 경우는 폼 요소에 대한 참조의 경우, 다음 $(targetFormID) 괜찮하지만 변수가 오해 이름

$("#" + targetFormID).submit(/* Same function as above */); 

필요합니다.

+0

페이지에 여러 개의 양식이있는 경우 이러한 솔루션을 구현해야 할 수 있습니다. 특히 자주 포커스가 양식 요소 중 하나에없는 경우 "기본"폼 (글쎄, 내가 4 년 전에 이런 식으로 뭔가를해야한다는 것에서 기억하고있는 것)이다. – JayC