jQuery表单提交似乎没有触发if语句

时间:2014-09-13 20:29:23

标签: javascript jquery forms input submit

我有这个错误,但我无法看到如何修复它。我已经使用了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()等),但这并没有改变任何东西,表单总是提交,而ifelse(它围绕着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显示/隐藏信息。盒子,这很好用。

1 个答案:

答案 0 :(得分:1)

请注意您正在使用:

$('#errorMsg').innerHTML("Emails need to be the same!");

如果您尝试提醒$('#errorMsg').innerHTML,则不会定义。

当你使用JQuery选择器$('#errorMsg')时,JQuery将使用拥有JQuery特殊方法(val,html等)的JQuery dom对象包装dom对象,因此你无法访问核心方法{{1相反,你应该使用:

innerHTML

享受!