Javascript Metasearch-当按下复选框时帮助Jquery ajax请求

Javascript Metasearch-当按下复选框时帮助Jquery ajax请求,javascript,jquery,ruby,ruby-on-rails-3,meta-search,Javascript,Jquery,Ruby,Ruby On Rails 3,Meta Search,我想在按下复选框true或false时发出Jquery ajax请求 $('.menuitem input:checkbox').change(function(){ doAjaxRequest(); }) 我的表格: <form method="get" action="/" accept-charset="UTF-8"><div style="margin: 0pt; padding: 0pt; display: inline;"><input name=

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

$('.menuitem input:checkbox').change(function(){
  doAjaxRequest();
})
我的表格:

<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>

公司1
公司2
公司3

当menuitem类中的任何复选框更改为true或false后,将启动自定义doAjaxRequest函数

$('.menuitem input:checkbox').change(function(){
  doAjaxRequest();
})
对第一个评论问题的答复:

$('.menuitem input:checkbox').change(function(){
      $('form').submit();
})
尽管您可能希望为表单定义一些id并使用它,而不仅仅是表单选择器:$(“#formId”)

编辑 我刚刚对您的问题代码和我的第二个答案进行了简化,它似乎起到了作用:

当menuitem类中的任何复选框更改为true或false后,将启动自定义doAjaxRequest函数

$('.menuitem input:checkbox').change(function(){
  doAjaxRequest();
})
对第一个评论问题的答复:

$('.menuitem input:checkbox').change(function(){
      $('form').submit();
})
尽管您可能希望为表单定义一些id并使用它,而不仅仅是表单选择器:$(“#formId”)

编辑 我刚刚对您的问题代码和我的第二个答案进行了简化,它似乎起到了作用:
这应该是一项相当简单的任务:

$('form input:checkbox').change(function() { 
    // $.ajax({});
    $('form').submit();
});
这将为每个复选框元素绑定一个ChangeEventHandler。当这些元素的数量增加时,您应该改为使用委派的更改事件

$('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
    }
});

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

$('form input:checkbox').change(function() { 
    // $.ajax({});
    $('form').submit();
});
这将为每个复选框元素绑定一个ChangeEventHandler。当这些元素的数量增加时,您应该改为使用委派的更改事件

$('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
    }
});


您希望在提交时或选中复选框时拨打电话吗?您可能应该将您遇到问题的确切位置放在哪里。当您单击复选框时,是否正在启动函数?它是在进行ajax查询吗?它是否正在处理从该查询返回的内容?你根本不知道javascript是如何工作的吗?将您迄今为止尝试过的内容放入问题中,而不是问一个非常笼统的问题,这是一种很好的做法。您希望在提交时还是在选中复选框时拨打电话?您可能应该将您遇到问题的确切位置放在哪里。当您单击复选框时,是否正在启动函数?它是在进行ajax查询吗?它是否正在处理从该查询返回的内容?你根本不知道javascript是如何工作的吗?将您迄今为止尝试过的内容放入一个问题中,而不是问一个非常普通的问题,这是一个很好的做法。当按下输入复选框时,如何按下提交按钮?@rails,请参阅jAndys在其报告中的第2条评论answer@rails您的页面中可能还有一些其他错误。请参阅我使用JSFIDLE进行的编辑。我将Jquery从外部javascript文件移动到布局文件的头部部分。似乎javascript存在于外部文件中的问题是“当按下输入复选框时如何按下提交按钮?”@rails,请参阅jAndys在其文章中的第2条评论answer@rails您的页面中可能还有一些其他错误。请参阅我使用JSFIDLE进行的编辑。我将Jquery从外部javascript文件移动到布局文件的头部部分。javascript在外部文件中的问题似乎是“输入复选框不是直接子项。输入复选框不是直接子项。不为每个复选框定义ajax调用,而是在复选框被选中时不可能按下submit按钮changed@Railsbeginner:当然可以。您必须调用
.submit()
来执行该操作。我在第一个示例中添加了这一点。然而,你应该比我更准确。仅查询
“表单”
将触发整个页面上所有表单的提交。@Railsbeginner:嗯,您的
操作
属性仍然为空。即使您手动单击“提交”按钮(如果有),也不会有请求。如果将复选框设置为true并手动按下“提交”按钮,则请求无效made@Railsbeginner:好吧,我可能错了。但是你希望得到什么呢?发出请求,但基本上只是重新加载同一个站点。我猜jQuery将避免执行,因为在该操作属性中没有meaninfull URIchanged@Railsbeginner:当然可以。您必须调用
.submit()
来执行该操作。我在第一个示例中添加了这一点。然而,你应该比我更准确。仅查询
“表单”
将触发整个页面上所有表单的提交。@Railsbeginner:嗯,您的
操作
属性仍然为空。即使您手动单击“提交”按钮(如果有),也不会有请求。如果将复选框设置为true并手动按下“提交”按钮,则请求无效made@Railsbeginner:好吧,我可能错了。但是你希望得到什么呢?发出请求,但基本上只是重新加载同一个站点。我猜jQuery将避免执行,因为在该操作属性中没有meaninfull URI。