我可以提交一个表单并使用 javascript 中的一个简单的匿名函数来验证它,如下所示:
document.getElementById('myForm').onsubmit = function() {
if(document.getElementById('email').value == "") {
document.getElementById('errormessage').innerHTML = "Please provide at least an email address";
return false;
} else {
return true; // Note this
}
};
在上面使用匿名函数的示例中,我可以简单地在提交文档时分配返回值并防止页面被提交,而在下面的示例中我使用addEventListener
在提交表单时添加事件并由验证函数进一步评估。我还将返回值设置为 true 或 false,但这种方法似乎不起作用并且页面被提交。我认为我返回值是错误的
function addEventHandler(node, evt, func) {
if(node.addEventListener)
node.addEventListener(evt, func);
else
node.attachEvent("on" + evt, func);
}
function initializeAll() {
addEventHandler(document.getElementById('myform'), 'submit', validate);
}
function validate() {
if(document.getElementById('email').value == ""){
document.getElementById("errormessage").innerHTML = "Please provide at least an email ";
return false;
} else {
return true;
}
}
addEventHandler(window, 'load', initializeAll);
我应该如何以这种方式返回值以防止表单提交或提交表单?
你在 jQuery 下发布了这个问题,所以我将为你提供一个 jQuery 解决方案:
$('#myform').on('submit', function () {
if($('#email').val() == ""){
$('#errormessage').html("Please provide at least an email ");
return false;
} else {
return true;
}
});
请注意,我使用的是 jQuery 1.7.on()
在这种情况下,函数取代了.bind()
早期版本的功能。
- 更新 -
这是上述解决方案的 jsfiddle:http://jsfiddle.net/jasper/LmaYk/ http://jsfiddle.net/jasper/LmaYk/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)