2013-04-21 2 views
2

양식 제출에 대한 유효성 검사를 추가했으나 양식 제출이 중지되었지만 양식 전체가 재설정되기 때문에 문제가 발생했습니다. 친절하게도 return false의 양식 제출을 중지하고 전체 양식 재설정을 중단 할 수있는 방법을 알려주세요. 감사합니다양식 제출을 중지하고 양식 값을 유지하십시오.

당신은 단지 함수에서 false을 돌아보다 더 많은 일을 할 필요가
function error() 
{ 
    if (!$("#form1 input[name='radio']:checked").val()) { 
    alert('Error: Please select any check box!'); 
    return false; 
    } 
    else { 
    //alert('One of the radio buttons is checked!'); 
    } 
} 

<form name="form1" id="form1"> 
    <input name="Name" type="text" id="name" size="70" /> 
    <input name="Age" type="text" id="age" size="70" /> 
    <input type="radio" name="radio" id="A18" value="18" /> 
    <input type="radio" name="radio" id="A19" value="19" /> 
    <input type="submit" onclick="error();" /> 
</form> 

답변

2

당신은 당신의 유효성 검사 기능을 가진 형태의 submit 이벤트를 처리하고, false을 반환해야 유지.

+0

적어도 "버튼"상호 작용에 대해서는 "제출"버튼의 "처리"가 작동 할 수 있지만 이것은 좋은 생각입니다. – Pointy

+1

@Pointy 다른 입력 필드에서 "return"을 누르면 어떻게 될까요? 나는 거의 버튼을 클릭하여에서를 제출하지 않습니다. – meagar

+0

@ meager yes 내 답을 제 편집으로 봅니다 - 당신 말이 맞습니다. – Pointy

2

:

<input type="submit" onclick="return error();" /> 

때문에 "온 클릭"속성은 본질적으로 실제 핸들러 함수의 본문으로 사용되는 값 자체 문 return이 필요합니다.

편집 — meagar의 대답은 좋은 생각 - 대신 버튼의 "클릭"이벤트의 양식에 "제출"이벤트를 처리하는 것이 현명 할 것이다. 그의 예제에서와 같이 jQuery를 통해 이벤트 핸들러를 설정하면 "오류"기능의 return 만 있으면 충분합니다. 될 양식 제출 및 폼의 요소의 현재 상태를 취소됩니다 submit 핸들러에서 false를 반환

$("#form1").submit(error); 

:

+0

답장으로 많은 문제가 해결되고 있습니다. :) – user2304394

+0

@ user2304394 빈약 한 내용도 좋은 조언입니다. – Pointy

+0

나는 그의 대답이 더 좋은 연습이라고 생각한다. 그래서 나는 그렇게 올바르게 작동하도록해야만 하는가? – user2304394

관련 문제