jQuery更改事件代码没有运行可能的事件冲突

时间:2016-05-17 21:29:05

标签: javascript jquery event-handling

首先我要说这是我第二天学习jQuery所以我非常喜欢初学者。

我编写了一个文档就绪函数,除了我编写的countryField.change函数之外,所有组件都正常工作。我很确定Web应用程序已经有了这个字段的更改功能,我不确定字段上是否有两个相同的事件。当我说它不起作用时,我在Chrome调试器中设置了一个断点,它从不进入该功能。

也许我必须暂时暂停现有事件,运行我的代码,然后重新启用默认事件?

任何帮助将不胜感激。感谢。

    $(document).ready(function(){
    var submitReady = true;
    var phoneField = $("p.phone").find("input");
    var phoneExt = $("p.Ext").find("input");
    var countryField = $("p.country").find("input");
    var stateField = $("p.state").find("input");
    var provinceField = $("p.Province").find("input");

    var regex = /^\([2-9][0-9]{2}\)\s+[2-9][0-9]{2}\-[0-9]{4}$/;

    phoneField.mask('(000) 000-0000', {placeholder: "(###) ###-####"});
    phoneExt.mask('00000', {placeholder: "#####"});

    $('#pardot-form').submit(function() {
        // DO STUFF
        if (submitReady) {
            if (phoneExt.val() != "") {
                phoneField.val(phoneField.val() + ' x' + phoneExt.val());
                return true;
            }
        }
        else {
            return false;
        }
    });
    phoneField.focusout(function() {
        if (regex.test($(this).val())) {
            submitReady = true;
            return true;
        }
        else {
            $(".form-field.phone").after( "<p class='tempError error no-label'>Please Enter a valid phone number: (###) ###-####</p>");
            submitReady = false;
        }
    });
    phoneField.focus(function() {
        $(".tempError").remove();
    });

    countryField.change(function() {
         phoneField.val("");
         provinceField.val("");
         stateField.val("");
         submitReady = true;
    });
});

1 个答案:

答案 0 :(得分:1)

你可以尝试

$( "p.country" ).change(function() {
    phoneField.val("");
    provinceField.val("");
    stateField.val("");
    submitReady = true;
});