将表单提交上的jquery与用于输入的插件相结合

时间:2016-10-14 12:24:24

标签: javascript jquery forms

我使用jquery和一些输入插件,如滑块复选框等。 然而,在那种形式,我有表格更改提交(GET过滤)。 如果插件更改输入值字段,则不会触发此操作..仅当用户执行此操作时才会触发。

$(document).on('change', '.form-onchange-submit', function (e) {
    $(this).submit();
});

例如,我使用此代码选择所有

 $(document).on('click', ".select_all", function (e) {
    e.preventDefault();
    var fields = $(this).data('fields');
    $("input[name='" + fields + "']").prop('checked', true);
    $("input[name='" + fields + "']").each(function () {
        var input_id = $(this).attr('id');
        $('label[for="' + input_id + '"]').removeClass('selectable-deselected').addClass('selectable-selected');
    });
});

如何在单击select_all时自动提交表单?

2 个答案:

答案 0 :(得分:0)

似乎你想要结合两个事件。您可以将多个事件与多个选择器组合在一起。

  • 检查事件类型e.type
  • 检查元素ID e.target.id

示例

$(".select_all, #form-onchange-submit").on("click change", function(e){
    if(e.type === "change"){
         //DO STUFF UNIQUE TO CHANGE
    }
    else if(e.type === "click") {
         //DO STUFF UNIQUE TO CLICK
    }
    //DO STUFF THAT IS THE SAME
});

如果您想手动触发事件,也可以使用.trigger()

$('#element').trigger('click');

答案 1 :(得分:0)

     $(".select_all").click(function(e) {
        e.preventDefault();
        var fields = $(this).data('fields');
        $("input[name='" + fields + "']").prop('checked', true);
        $("input[name='" + fields + "']").each(function () {
            var input_id = $(this).attr('id');
            $('label[for="' + input_id + '"]').removeClass('selectable-deselected').addClass('selectable-selected');
        });
     $('.form-onchange-submit').submit();
    });