Javascript addEventListener-有没有更有效的方法
我添加JavaScript是为了提醒用户需要填写指定字段。这不是错误的代码,但由于我有两个表单,每个字段都需要单独的JavaScript,我想知道是否有更有效的方法来编写脚本?我知道您可以在HTML中编写所需的属性,但我对此不感兴趣Javascript addEventListener-有没有更有效的方法,javascript,events,Javascript,Events,我添加JavaScript是为了提醒用户需要填写指定字段。这不是错误的代码,但由于我有两个表单,每个字段都需要单独的JavaScript,我想知道是否有更有效的方法来编写脚本?我知道您可以在HTML中编写所需的属性,但我对此不感兴趣 function prepareEventHandlers () { document.getElementById("bookingFrm").addEventListener("submit", function(event) {
function prepareEventHandlers () {
document.getElementById("bookingFrm").addEventListener("submit", function(event) {
// Show message
if (document.getElementById("email").value == "Your Email") {
document.getElementById("errorMessage").innerHTML = "Please provide an email address!";
// to STOP the form from submitting
event.preventDefault(); // Prevent form from submitting // when using addEventListener, return false wont work, in all other cases use return false
} else {
// reset and allow the form to submit
document.getElementById("errorMessage").innerHTML = "";
return true;
}
});
}
function prepareEventHandlersName () {
document.getElementById("bookingFrm").addEventListener("submit", function(event) {
// Show message
if (document.getElementById("name").value == "Your Name") {
document.getElementById("errorMessage1").innerHTML = "Please provide a name!";
// to STOP the form from submitting
event.preventDefault(); // Prevent form from submitting
} else {
// reset and allow the form to submit
document.getElementById("errorMessage1").innerHTML = "";
return true;
}
});
}
function start() {
prepareEventHandlers();
prepareEventHandlersName();
}
window.onload = start;
为什么不在同一个函数中执行两个检查
function prepareEventHandlersForBoth () {
document.getElementById("bookingFrm").addEventListener("submit", function(event) {
// Show message
if (document.getElementById("email").value == "Your Email") {
document.getElementById("errorMessage").innerHTML = "Please provide an email address!";
event.preventDefault();
} else {
document.getElementById("errorMessage").innerHTML = "";
return true;
}
if (document.getElementById("name").value == "Your Name") {
document.getElementById("errorMessage1").innerHTML = "Please provide a name!";
event.preventDefault();
} else {
document.getElementById("errorMessage1").innerHTML = "";
return true;
}
});
}
}
function start() {
prepareEventHandlersForBoth();
}
window.onload = start;
为什么不在同一个函数中同时检查name和email?要响应任何事件,必须通过addEventListener()或使用事件属性smth.onsubmit=function(){…}附加回调。为什么不使用验证库?或者至少看一看它是如何工作的。为建议干杯,伙计们,我现在将看看@Mathletics。为代码干杯,谢尔盖