元搜索 - 按下复选框时帮助Jquery ajax请求

时间:2011-08-01 12:01:12

标签: javascript jquery ruby ruby-on-rails-3 meta-search

我想在复选框按下true或false时发出Jquery ajax请求。

我的表格:

<form method="get" action="/" accept-charset="UTF-8"><div style="margin: 0pt; padding: 0pt; display: inline;"><input name="utf8" value="✓" type="hidden"></div>        
    <div class="menuitem">
    <label for="search_company1">company1</label>
    <input name="search[company1_is_true]" value="0" type="hidden"><input id="search_company1_is_true" name="search[company1_is_true]" value="1" type="checkbox">
    </div>
    <div class="menuitem">
    <label for="search_company2">company2</label>
    <input name="search[company2_is_true]" value="0" type="hidden"><input id="search_company2_is_true" name="search[company2_is_true]" value="1" type="checkbox">
    </div>
    <div class="menuitem">
    <label for="search_company3">company3</label>
    <input name="search[company3_is_true]" value="0" type="hidden"><input id="search_company3_is_true" name="search[company3_is_true]" value="1" type="checkbox">
    </div>
<input id="search_submit" name="commit" value="Create Search" type="submit">
</form>

3 个答案:

答案 0 :(得分:2)

这会在menuitem类中的任何复选框更改为true或false后启动自定义doAjaxRequest函数。

$('.menuitem input:checkbox').change(function(){
  doAjaxRequest();
})

回答第一条评论问题:

$('.menuitem input:checkbox').change(function(){
      $('form').submit();
})

虽然您可能希望为表单定义一些id并使用它而不仅仅是表单选择器:$('#formId')

修改 我刚刚提出了你的代码的问题和我的第二个答案,它似乎工作: http://jsfiddle.net/dUPmg/

答案 1 :(得分:1)

应该是一项相当简单的任务:

$('form input:checkbox').change(function() { 
    // $.ajax({});
    $('form').submit();
});

这会将change-eventhandler绑定到每个checkbox元素。当这些元素的数量增加时,您应该转而使用委派的更改事件。

$('form').delegate('input:checkbox', 'change', function( e ) {
    switch( e.id ) { 
        case 'search_company1_is_true':
             $.ajax({});
             break;
        case 'search_company2_is_true':
             $.ajax({});
             break;
        // and so forth
    }
});

答案 2 :(得分:0)

$('form input:checkbox').bind('click change', function(){
    $.ajax({
      url: "/test.html",
      success: function(){
          $(this).addClass("done");
      }
    });
});