Javascript 页面上有多个表单,验证功能最少
不使用JQuery,我在一个页面上有多个表单,不需要重新编写函数负载,您能帮我吗Javascript 页面上有多个表单,验证功能最少,javascript,html,validation,Javascript,Html,Validation,不使用JQuery,我在一个页面上有多个表单,不需要重新编写函数负载,您能帮我吗 <html><head> <script type="text/javascript"> function validPhone() { if(document.all.[phoneVar].value.length <= 7) alert("You must
<html><head>
<script type="text/javascript">
function validPhone() {
if(document.all.[phoneVar].value.length <= 7)
alert("You must enter a valid phone number");
document.all.[phoneVar].focus() ;
return false;
}
</script>
</head><body>
<script type="text/javascript">
function checkThisParticularForm() {
var phoneVar = document.GetElementById('phone').value; //set element id
validPhone(); //this calls the validPhone function
}
</script>
<form action="./logging.php" method="post" enctype="multipart/form-data" name="NewCallForm" onsubmit="checkThisParticularForm();">
<input type="text" class="textbox" id="phoneNumber" name="phoneNumber" value="" />
<input type="submit" value="Submit Details">
</form>
</body></html>
函数validPhone(){
if(document.all.[phoneVar].value.length这里有一个简单的方法,但首先必须将所有表单包装在一个div id=“allforms”
中
window.onload=函数(){
document.getElementById('allforms')。addEventListener('submit',函数(e){
var pn=e.target.phoneNumber;
如果(pn.value.length考虑编写一个验证库,并使用HTML5datafoo
属性来完成所有脏活:
<form ...>
<input type="text" name="foo"
data-validation-required="true">
<input type="text" name="phone"
data-validation-required="true"
data-validation-required-message="The phone number is required"
data-validation-format="^\\d{3}-\\d{3}-\\d{4}"
data-validation-format-message="Please enter a valid phone number">
</form>
并创建一个JavaScript库来进行验证:
var Validator = {
init: function() {
document.documentElement.addEventListener("submit", this.handleSubmit.bind(this), false);
},
handleSubmit: function(event) {
var form = event.target.form || event.target,
requiredFields = form.querySelectorAll("[data-validation-required=true"),
formattedFields = form.querySelectorAll("[data-validation-format]");
if (!this.validateRequiredFields(requiredFields)) {
event.preventDefault();
}
else if (!this.validateFormats(formattedFields)) {
event.preventDefault();
}
},
validateRequiredFields: function(fields) {
var regex = /^\s*%/, i = 0,
success = true;
for (i; i < fields.length; i++) {
if (regex.test(fields[i].value)) {
this.showMessage(fields[i].getAttribute("data-valiation-required-message") || "This field is required", fields[i]);
success = false;
}
}
}
validateFormats: function(fields) {
var format, field,
i = 0, length = fields.length,
success = true;
for (i; i < length; i++) {
field = fields[i];
format = new RegExp(field.getAttribute("data-validation-format"));
if (!format.test(field.value)) {
this.showMessage(field.getAttribute("data-validation-format-message"), field);
success = false;
}
}
return success;
},
showMessage: function(message, field) {
field.classList.add("invalid");
var span = document.createElement("span");
span.className = "validation-error";
span.innerHTML = message;
field.parentNode.insertBefore(span, field);
}
};
Validator.init();
var验证程序={
init:function(){
document.documentElement.addEventListener(“提交”,this.handleSubmit.bind(this),false);
},
handleSubmit:函数(事件){
var form=event.target.form | | event.target,
requiredFields=form.querySelectorAll(“[data validation required=true”),
formattedFields=form.querySelectorAll(“[data validation format]”);
如果(!this.validateRequiredFields(requiredFields)){
event.preventDefault();
}
如果(!this.validateFormats(formattedFields)){
event.preventDefault();
}
},
validateRequiredFields:函数(字段){
var regex=/^\s*%/,i=0,
成功=真实;
对于(i;i
这就是整个页面所需的全部内容,因为document.documentElement
是
标记。由于submit
事件会在文档树中冒泡出现,因此您只需要一个提交处理程序
(注意:这是未经测试的代码,但应该会告诉您基本的想法)那么这只是客户端检查吗?因为在保存表单信息之前,您仍然应该在服务器端进行验证。
var Validator = {
init: function() {
document.documentElement.addEventListener("submit", this.handleSubmit.bind(this), false);
},
handleSubmit: function(event) {
var form = event.target.form || event.target,
requiredFields = form.querySelectorAll("[data-validation-required=true"),
formattedFields = form.querySelectorAll("[data-validation-format]");
if (!this.validateRequiredFields(requiredFields)) {
event.preventDefault();
}
else if (!this.validateFormats(formattedFields)) {
event.preventDefault();
}
},
validateRequiredFields: function(fields) {
var regex = /^\s*%/, i = 0,
success = true;
for (i; i < fields.length; i++) {
if (regex.test(fields[i].value)) {
this.showMessage(fields[i].getAttribute("data-valiation-required-message") || "This field is required", fields[i]);
success = false;
}
}
}
validateFormats: function(fields) {
var format, field,
i = 0, length = fields.length,
success = true;
for (i; i < length; i++) {
field = fields[i];
format = new RegExp(field.getAttribute("data-validation-format"));
if (!format.test(field.value)) {
this.showMessage(field.getAttribute("data-validation-format-message"), field);
success = false;
}
}
return success;
},
showMessage: function(message, field) {
field.classList.add("invalid");
var span = document.createElement("span");
span.className = "validation-error";
span.innerHTML = message;
field.parentNode.insertBefore(span, field);
}
};
Validator.init();