我有这个错误,但我无法看到如何修复它。我已经使用了JSLint的一些结果(它只是告诉我document
不是全局值,或者不需要&#39; else子句等,但没有解决方案。< / p>
我有一个要提交的表单,我需要比较两个电子邮件字段是否相同。所以我想要一个简单的简单的email1 == email2脚本,jQuery不是我最强的观点,但我想出了这个:
我的表单ID是&#34; regIn&#34;,我的电子邮件字段分别是type="email"
(HTML5)和id="MailA"
以及id="MailB"
。
我已预加载jquery 1.11.1.min.js
我的jQuery代码(请参阅下面#forgotten
仍在其中的原因):
$(document).ready(function() {
$('#forgotten').click(function() {
$('#passbox').toggle(360);
return false;
});
$('#regIn').submit(function() {
// *引用;但这不在代码中:alert('alert1');
if ($('#MailA').val() === $('#MailB').val()) {
return true;
}
$('#errorMsg').innerHTML("Emails need to be the same!");
alert('Hello');
return false;
});
});
所以 - 我使用警报来查看脚本有多远(我知道,调试很松懈)。 firebug不会报告我可以看到的页面错误或脚本错误。 &#34;警报1&#34;始终触发表单提交,并成功显示#MailA.val()
和#MailB.val()
的值,
但是if
声明似乎根本没有发射。我已经尝试过制作值变量(var d1 = $('#MailA').val()
等),但这并没有改变任何东西,表单总是提交,而if
或else
(它围绕着if
语句子句下面的文本,但JSLint说不需要这样删除它。
我还使用了!=
和==
语法的变体,但也从JSLint中读取===
和!==
是首选。
我的HTML:
<form enctype="multipart/form-data" name="regIn" id="regIn" autocomplete="off" accept-charset="utf-8" action="#" method="post">
<div class="inputContainer">
<input type="email" value="" tabindex="31" id="MailA" name="regMailA" required>
</div>
<div id="errorMsg"></div>
<div class="inputContainer">
<input type="email" value="" id="MailB" tabindex="32" name="regMailB" required>
</div>
<div class="registerRow">
<input type="submit" class="regButton" value="Register" tabindex="34">
</div>
</form>
正如我所说,我在最后一个小时左右环顾四周,我只是看不出它是什么。
显然代码被删除了问题,唯一的另一个方面是document ready
函数中还有另一个jQuery - 如图所示#forgotten
显示/隐藏信息。盒子,这很好用。
答案 0 :(得分:1)
请注意您正在使用:
$('#errorMsg').innerHTML("Emails need to be the same!");
如果您尝试提醒$('#errorMsg').innerHTML
,则不会定义。
当你使用JQuery选择器$('#errorMsg')
时,JQuery将使用拥有JQuery特殊方法(val,html等)的JQuery dom对象包装dom对象,因此你无法访问核心方法{{1相反,你应该使用:
innerHTML
享受!