Javascript 是否基于类验证表单必填字段?
一个JavaScript脚本是什么,在提交时,它会使用Javascript 是否基于类验证表单必填字段?,javascript,forms,validation,Javascript,Forms,Validation,一个JavaScript脚本是什么,在提交时,它会使用class=“required”获取所有表单元素,如果它们为空,则会显示一个警告框,“您必须填写某某” 我在想一个if-else,在if部分,我们会得到一个while,它循环遍历所有类=必需的元素,而else将提交表单。互联网上有许多JavaScript库正是这样做的 试试这个: 或者尝试在谷歌搜索JavaScript表单验证。互联网上有许多JavaScript库正是这样做的 试试这个: 或者尝试谷歌搜索JavaScript表单验证。循环
class=“required”
获取所有表单元素,如果它们为空,则会显示一个警告框,“您必须填写某某”
我在想一个
if
-else
,在if
部分,我们会得到一个while
,它循环遍历所有类=必需的元素,而else
将提交表单。互联网上有许多JavaScript库正是这样做的
试试这个:
或者尝试在谷歌搜索JavaScript表单验证。互联网上有许多JavaScript库正是这样做的
试试这个:
或者尝试谷歌搜索JavaScript表单验证。循环表单元素并检查具有特定类的元素是否具有满足特定条件的值是相当容易的:
<form name="f0" onsubmit="return validate(this);">
<input name="inp0" class="required" >
<input name="inp2" class="required" >
<input type="submit">
</form>
<script type="text/javascript">
var validate = (function() {
var reClass = /(^|\s)required(\s|$)/; // Field is required
var reValue = /^\s*$/; // Match all whitespace
return function (form) {
var elements = form.elements;
var el;
for (var i=0, iLen=elements.length; i<iLen; i++) {
el = elements[i];
if (reClass.test(el.className) && reValue.test(el.value)) {
// Required field has no value or only whitespace
// Advise user to fix
alert('please fix ' + el.name);
return false;
}
}
}
}());
</script>
您也可以使用弹出窗口来显示错误,但是这真的很烦人,用户必须关闭弹出窗口来修复错误。最好只在每个元素旁边写下错误,让用户在自己的时间内解决问题。循环表单元素并检查具有特定类的元素是否具有符合特定标准的值是相当容易的:
<form name="f0" onsubmit="return validate(this);">
<input name="inp0" class="required" >
<input name="inp2" class="required" >
<input type="submit">
</form>
<script type="text/javascript">
var validate = (function() {
var reClass = /(^|\s)required(\s|$)/; // Field is required
var reValue = /^\s*$/; // Match all whitespace
return function (form) {
var elements = form.elements;
var el;
for (var i=0, iLen=elements.length; i<iLen; i++) {
el = elements[i];
if (reClass.test(el.className) && reValue.test(el.value)) {
// Required field has no value or only whitespace
// Advise user to fix
alert('please fix ' + el.name);
return false;
}
}
}
}());
</script>
您也可以使用弹出窗口来显示错误,但是这真的很烦人,用户必须关闭弹出窗口来修复错误。最好只在每个链接旁边写下错误的地方,让用户在自己的时间内解决问题。我对这个混乱的链接深表歉意。我已经更新了它-有人在跟我开一个很糟糕的玩笑。我对那个混乱的链接感到非常抱歉。我已经更新了它-有人在开我一个很糟糕的玩笑。刚刚测试了你的代码并重新阅读了你的评论,我该如何一次性设置所有错误消息?而不是一个接一个?(顺便说一句,我不介意提交而不是当场写下来)刚刚测试了你的代码并重新阅读了你的评论,我该如何一次性设置所有的错误消息?而不是一个接一个?(注:我不介意提交而不是当场写)
// At the top
var isValid = true;
var errEl;
...
// When entering the for loop
el = elements[i];
errEl = document.getElementById(el.name + '-err');
// when error found
isValid = false;
if (errEl) errEl.innerHTML = '... error message ...';
// else if error not found
// remove message whether there is one or not
if (errEl) errEl.innerHTML = '';
...
// At the end
return isValid;