![](/img/trans.png)
[英]jQuery form: on submit validation issue + stay on the same page after submit
[英]Form stay on same page after submit
即使顯示警告消息並且明顯存在返回的錯誤代碼,我的頁面仍繼續提交。 我在這里做錯了什么?
function validateForm () {
var selected = "";
var radios = document.getElementsByName("special");
var len = document.getElementsByName("special").length;
var i;
for (i = 0; i < len; i++) {
if(radios[i].checked) {
selected = radios[i].value;
break;
}
if(selected == "") {
alert("Must select option.");
return false;
}
else {
return true;
}
}
}
<form action="FormProcessor.html" method="post" onreset="blank();" onsubmit="validateForm();" name="myForm">
<p>Would you like special offers sent to you e-mail?</p>
<input type="radio" name="special" value="Yes"/>Yes
<input type="radio" name="special" value="No"/>No<br/>
<input type="submit"/>
<input type="reset"/>
</form>
你必須這樣說
onsubmit="return validateForm();"
代替
onsubmit="validateForm();"
那是因為您正在檢查for
循環中selected
的值,所以第一次它的值是""
第二次它變成No
在您的提交處理程序中,使用event.preventDefault
而不是return false
。
function validateForm (event) {
...
if(selected == "") {
alert("Must select option.");
event.preventDefault();
}
您必須做更多的工作來支持IE8。
event.preventDefault ? event.preventDefault() : event.returnValue = false;
或者,您可以將onsubmit
屬性更改為return validateForm()
。 這將阻止默認操作並停止事件傳播,而不僅僅是阻止默認操作。
您錯過了在表單的onsubmit()方法之前編寫return的信息。
onsubmit="return validateForm();"
如果在onSubmit()方法調用之前未編寫return,則javascript無法將頁面返回到表單中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.