首页 > 解决方案 > 当我尝试使用更改时无法从提交函数调用

问题描述

点击功能工作正常,但是当我使用更改功能时,它没有点击提交功能

示例 1:

$('button').click(function(e) {
    $('form').submit(function(event) {
        event.preventDefault(); //prevent default action
        var post_url = $(this).attr("action"); //get form action url
        var request_method = $(this).attr("method"); //get form GET/POST method
        var form_data = new FormData(this); //Encode form elements for submission
        $.ajax({
            url : post_url,
            type: request_method,
            data : form_data,
            contentType: false,
            processData:false,
        }).done(function(response) { //
            //pass
        }).fail(function(response) {
            //fail
        });
    });
}); 

示例 2:

$('input').change(function(event) {
    $(this).parents('form').submit(function(event) {
        event.preventDefault(); //prevent default action
        var post_url = $(this).attr("action"); //get form action url
        var request_method = $(this).attr("method"); //get form GET/POST method
        var form_data = new FormData(this); //Encode form elements for submission
        $.ajax({
            url : post_url,
            type: request_method,
            data : form_data,
            contentType: false,
            processData:false,
        }).done(function(response) { 
            //pass
        }).fail(function(response) {
            //fail
        });
    });
});

有人可以帮助我为什么示例 2没有按我的意愿工作。如果您看到两个代码相同但仅更改事件名称。

我犯了错误还是它的 Jquery 默认行为?

标签: javascriptjqueryajaxform-submit

解决方案


我想向您推荐另一个答案-Detecting input change in jQuery?

问题在于不会在输入字段上触发的“更改”事件,您应该监听其他事件,例如“输入”、“按键按下”、“按键”或“更改”事件收听应该在不同的表单元素上,例如选择(下拉框)


推荐阅读