[英]Javascript form validation return false error
我正在嘗試做一個表單,並且在彈出警報時,它仍在提交。 我如何停止提交?
function validate() { var first = document.register.first.value; if (first == "") { alert("please enter your name"); first.focus(); return false; } return (true); }
<body> <form name="register" action="testform.php" onsubmit="return(validate());"> <input type="text" name="first" /> <button type="submit" />Submit </form> </body>
您在return()上添加了括號,然后在調用該函數時在我們使用()
return(validate())
上添加了括號,因此它可能正在考慮return
一個自定義函數,該函數返回undefined,當返回undefined時,它將忽略並繼續執行。 驗證的調用方式如何,但其響應不會返回到表單。
固定版本:
<head>
<script>
function validate(e) {
var first = document.register.first.value;
console.log(document.register.first)
if( first == "" ) {
alert( "please enter your name" ) ;
return false;
}
return(true);
}
</script>
</head>
<body>
<form name="register" action="testform.php" onsubmit="return validate()">
<input type="text" name="first" />
<button type="submit" >sbmit</button>
</form>
</body>
最好在事物的前端使用required
屬性。 在提交之前,它將“強迫”用戶在輸入字段中輸入文本。 請注意,我在'force'一詞周圍加上了引號,因為您可以編輯HTML並避開HTML required屬性。 因此,絕對要確保您也在PHP方面驗證用戶輸入 。
許多教程和示例PHP表單驗證存在,如這一個從W3Schools的和這個來自中等。
<form name="register" action="testform.php"> <input type="text" name="first" required/> <input type="submit" value="Submit"/> </form>
我認為問題出在按鈕的type="submit"
。 嘗試使用onclick
函數將其更改為type="button"
,如果validate()
返回true
,則該函數會提交您的表單 。
編輯:Arjan有一個很好的觀點,您應該使用required
。 但這回答了為何提交表單。
您的代碼中有幾個錯誤。
<button>
元素未自動關閉 focus
於輸入值,而不是引發異常的輸入元素 function validate() {
var input = document.register.first;
var text = input.value;
if( text == "" ) {
alert( "please enter your name" ) ;
input.focus();
return false;
}
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.