如果确认为true,则调用另一个jQuery函数

时间:2009-09-24 05:21:20

标签: jquery forms confirm

如果确认为真,我正在尝试调用另一个jQuery函数,这是代码:

jQuery("#adminForm_1").submit(function () {

    var empty = false;
    jQuery(":input", "#adminForm_1").each(function () {
        empty = (jQuery(this).val() == "") ? true : empty;
    });
    if (empty) {

        if (confirm('You have not filled out all of the fields, do you wish to continue?')) {

            jQuery("#adminForm_1").validationEngine({
                ajaxSubmit: true,
                ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
                ajaxSubmitMessage: "Client Trip Details Saved",
                inlineValidation: false,
                success: false,
                failure: function () {}
            });

        } else {
            return false;
        };

    }

});

^^上面的代码不起作用,但你会看到我正在尝试做什么..

2 个答案:

答案 0 :(得分:3)

您需要阻止浏览器对表单的默认操作,即以传统方式将其提交给服务器。提交处理程序末尾的return false或开头的e.preventDefault()

jQuery("#adminForm_1").submit(function (e) {
    e.preventDefault();
    ...

或:

jQuery("#adminForm_1").submit(function () {

    var empty = false;
    jQuery(":input", "#adminForm_1").each(function () {
        empty = (jQuery(this).val() == "") ? true : empty;
    });
    if (empty) {
        if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
            ...
            });
        } 
    }
    return false;
});

请参阅preventDefault

  

阻止浏览器执行   默认操作。使用该方法   isDefaultPrevented知道是否   这种方法曾被称为(就此而已   事件对象)。

由于旁注return falsepreventDefault具有相同的效果,它会阻止事件冒泡到父元素。 jQuery的实现机制在stopPropagation方法中。换句话说,return false = e.preventDefault + e.stopPropagation

答案 1 :(得分:1)

您没有停止传播“正常”提交事件 - 尝试在return false方法之后添加.validationEnginge()(或者将其移出if块):

jQuery("#adminForm_1").submit(function () {
    var empty = false;
    jQuery(":input", "#adminForm_1").each(function () {
        empty = (jQuery(this).val() == "") ? true : empty;
    });
    if (empty) {
        if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
            jQuery("#adminForm_1").validationEngine({
                ajaxSubmit: true,
                ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
                ajaxSubmitMessage: "Client Trip Details Saved",
                inlineValidation: false,
                success: false,
                failure: function () {}
            });
        }
        return false;
    }
});

甚至

jQuery("#adminForm_1").submit(function () {
    var empty = false;
    jQuery(":input", "#adminForm_1").each(function () {
        empty = (jQuery(this).val() == "") ? true : empty;
    });
    if (empty) {
        if (confirm( ... )) {
            jQuery("#adminForm_1").validationEngine({ ...  });
        }
    }
    return false;
});