Javascript 表格提交不需要';如果为空,则不会显示错误消息

Javascript 表格提交不需要';如果为空,则不会显示错误消息,javascript,html,forms,Javascript,Html,Forms,如果我试图提交一个空表单,我试图显示一条错误消息。下面的代码显示了应该发生什么 function prepareEventHandlers() { document.getElementById("frmContact").onsubmit = function () { if (document.getElementById("email").value == '') { document.getElementById("errorMessage").innerHTM

如果我试图提交一个空表单,我试图显示一条错误消息。下面的代码显示了应该发生什么

 function prepareEventHandlers() {
document.getElementById("frmContact").onsubmit = function () {
    if (document.getElementById("email").value == '') {
        document.getElementById("errorMessage").innerHTML = 'Please provide at least an email address!';
        return false;
    }
    else {
        document.getElementById("errorMessage").innerHTML = '';
        return true;
    }
};
}


window.onload = function () {
prepareEventHandlers();
}
以下是我的cshtml部分的代码:

<form id="frmContact" method="post">
<fieldset>
<legend>Personal Information</legend>
<p>email and other elements here.</p>
<div>
<input type="checkbox" name="checkbox1" checked="false" />
Remind me later <br />
</div>
<p><span id="errorMessage"></span></p>
<input type="submit" value="Send" id="send"/>
</fieldset>
</form>
<script src="http://localhost:53734/Scripts/JScript3.js"></script>

个人信息
电子邮件和其他元素在这里

以后再提醒我


我试着调试它,但它没有在单击时调用PrepareEventHandler方法。此外,尝试将脚本标记粘贴到表单上方,但这也没有起到任何作用

您的表单没有电子邮件的输入元素。您的JavaScript正在使用
document.getElementById(“email”).value查找ID为email(可能是输入)的元素,但您的表单缺少它

更改:

<p>email and other elements here.</p>
这里有电子邮件和其他元素

致:


然后你的代码就可以正常工作了

您必须拥有一个具有相应ID的元素才能进行验证。这里您没有电子邮件id元素,但您正在尝试验证

试试下面的方法

<input type="text" id="email"/> 

<input type="text" id="email"/>