1

如果我尝试提交空表单,我会尝试显示错误消息。下面的代码显示了应该发生的事情。

 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>

我尝试调试它,但它没有在点击时调用 prepareEventHandlers 方法。另外,尝试将脚本标签粘贴在表单上方,但这也没有做任何事情。

4

2 回答 2

1

您的表单没有电子邮件的输入元素。您的 JavaScript 正在寻找带有电子邮件 ID(可能是输入)的元素,document.getElementById("email").value但您的表单缺少它。

改变:

<p>email and other elements here.</p>

到:

<p><input id="email" /></p>

然后你的代码工作正常。jsFiddle 示例

于 2012-08-24T17:14:23.500 回答
1

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

尝试以下

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

这是小提琴

于 2012-08-24T17:15:35.333 回答