[英]Validation using java script
我正在嘗試對電子郵件和姓名這兩個字段進行驗證,但是只有電子郵件正在得到驗證,並且不檢查姓名字段。 我無法找到代碼中的錯誤。
<html>
<body>
<form name="myForm">
Email: <input type="text" name="email" id="email2">
<br>
Name: <input type="text" name=" fname">
<button type="submit" name="submit" onclick="validateForm()">submit</button>
<br> email
<div id="email1"></div>
</form>
</body>
<script>
function validateForm() {
var x = document.forms["myForm"]["email"].value;
var atpos = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
alert("Not a valid e-mail address");
return false;
}
var email1 = document.getElementById("email2").value;
document.getElementById("email1").innerHTML=email1;
var y = document.forms["myForm"]["fname"].value;
if (y==null ||y=="") {
alert("name must be filled");
return false;
}
}
</script>
</html>
您已經錯過了給Name分配ID: <input type="text" name=" fname">
ID分配ID Name: <input type="text" name=" fname" id="fname">
。
作為document.forms["myForm"]["fname"].value;
這需要元素id來獲取值。
<input type="text" name=" fname">
fname前面有一個空格,這就是為什么它不起作用的原因。您可以嘗試這樣的簡單解決方案
添加其他布爾值以檢查您的驗證
function validateForm() {
var x = document.forms["myForm"]["email"].value;
//Additional boolean
var success = true;
var atpos = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
alert("Not a valid e-mail address");
success = false;
}
var email1= document.getElementById("email2").value;
document.getElementById("email1").innerHTML=email1;
var y = document.forms["myForm"]["fname"].value;
if (y==null ||y=="") {
alert("name must be filled");
success = false;
}
return success;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.