我如何使用另一種方法(如異步方法(promises 或 async-await))驗證下面的表單?
在下面的表單中,如果 onsubmit ="return validateForm()" 等于布林值 true,則表單被驗證,如果 onsubmit ="return validateForm()" 等于布林值 false,則不驗證表單。
我的問題是:異步函式總是回傳承諾,而不回傳布林值......
<!DOCTYPE html>
<html>
<head>
<title>Hello Javascript</title>
<script type = "text/javascript">
function validateForm() {
var u = document.getElementById("username").value;
var p = document.getElementById("password").value;
if(u== "") {
alert("Please enter your Username");
return false;
}
if(p == "") {
alert("Please enter you Password");
return false;
}
alert("All datas are valid!, send it to the server!")
return true;
}
</script>
</head>
<body>
<h2>Enter your Username and Password</h2>
<div style="border:1px solid #ddd; padding: 5px;">
<form method="POST" action="process-action.html" onsubmit = "return validateForm()">
Username: <input type="text" name="username" id="username"/>
<br><br>
Password: <input type="password" name = "password" id="password"/>
<br><br>
<button type="submit">Submit</button>
</form>
</div>
</body>
</html>
uj5u.com熱心網友回復:
您撰寫的驗證代碼是同步客戶端代碼,您不需要承諾來執行它。
您在這里需要做的是使用e.preventDefault,否則提交按鈕將嘗試觸發向服務器提交表單。
以這個答案為例。
如果你走這條路,使用e.preventDefault來防止觸發表單提交,驗證表單并通過啟動 ajax 呼叫來提交它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/359051.html
標籤:javascript 节点.js 形式 验证 异步
