电话号码的Javascript表单验证
尝试创建一个具有非常简单的验证的表单,我对两件事很好奇 一,;如何检查表单是否为空 二,;在“电话号码”字段中,我如何仅接受此格式的号码: xxx xxxx(其中X是一个数字) 以下是我迄今为止所做的工作: HTML:电话号码的Javascript表单验证,javascript,html,forms,validation,Javascript,Html,Forms,Validation,尝试创建一个具有非常简单的验证的表单,我对两件事很好奇 一,;如何检查表单是否为空 二,;在“电话号码”字段中,我如何仅接受此格式的号码: xxx xxxx(其中X是一个数字) 以下是我迄今为止所做的工作: HTML: <form onsubmit="return false" method="post" name="myForm"> <div class="form-block"> <label>Name: </label>
<form onsubmit="return false" method="post" name="myForm">
<div class="form-block">
<label>Name: </label>
<input type="text" name="name" id="name" />
<span id="name-error" class="error"></span>
</div>
<div class="form-block">
<label>Phone Number: </label>
<input type="text" name="phone" id="phone" />
<span id="phone-error" class="error"></span>
</div>
<input type="submit" id="mysubmit" name="submit" onclick="validate()" />
</form>
JS:
您可以通过简单地检查空字符串来测试表单元素的值是否为空 我已经说过,这将帮助您访问和迭代表单字段
// ES5: a very crude validation check
// your form field elements should share a class in order to collect them all
var formElements = document.querySelectorAll('.your-form-field-class');
// set a flag to keep track of whether you have an empty field
var containsEmptyField = false
i,
l = formElements.length;
for (; i < l; i++) {
if (formElements[i].value === '') {
containsEmptyField = true;
// do something in response to an empty field
// the break is to stop looping since you've found
// a match
break;
}
}
// ES6: a very crude validation check
const formElements = document.querySelector('#some-form').elements;
let containsEmptyField = false;
for (let element of formElements) {
if (element.value === '') {
containsEmptyField = true;
break;
}
}
可能重复的“你能展示你到目前为止所做的事情吗?”嗯……海报没有提到他是否针对ES6——这段代码可能也应该作为ES5版本呈现,因为它们听起来对Javascript来说是新的……说得对。添加了另一个ES5版本。
validate = function() {
var name = document.getElementById("name").value;
var phone = document.getElementById("phone").value;
if(/^[a-zA-Z]*$/.test(name)) {
document.getElementById("name-error").innerHTML = "Good.";
} else {
document.getElementById("name-error").innerHTML = "Invalid. Only letters.";
}
if(isNaN(phone)) {
document.getElementById("phone-error").innerHTML = "Can only contain numbers";
} else {
document.getElementById("phone-error").innerHTML = "Good.";
}
};
// ES5: a very crude validation check
// your form field elements should share a class in order to collect them all
var formElements = document.querySelectorAll('.your-form-field-class');
// set a flag to keep track of whether you have an empty field
var containsEmptyField = false
i,
l = formElements.length;
for (; i < l; i++) {
if (formElements[i].value === '') {
containsEmptyField = true;
// do something in response to an empty field
// the break is to stop looping since you've found
// a match
break;
}
}
// ES6: a very crude validation check
const formElements = document.querySelector('#some-form').elements;
let containsEmptyField = false;
for (let element of formElements) {
if (element.value === '') {
containsEmptyField = true;
break;
}
}
(/^(\d){3,3}\-(\d){4,4}$/).test(someNumber)
// returns true if value matches or false if it doesn't