首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复选框显然拒绝在单击帮助上提交信息。

复选框显然拒绝在单击帮助上提交信息。
EN

Stack Overflow用户
提问于 2010-01-20 10:15:33
回答 2查看 777关注 0票数 0

嗨,这是我的第二个帖子(和第二个星期的编程,永远),所以道歉,在此之前。

我有一个复选框列表,这些复选框表示要传递给params的不同搜索筛选器。例如,如果这是一个餐馆搜索,我希望我的用户能够检查出他们感兴趣的不同类型的菜肴。就像Yelp一样。

我想做的就是每次有人点击一个选项时发送新的参数。我现在不关心AJAX (当我谈到它的时候我会跨过那座桥)。

即使我没有使用AJAX,我也可以用observe_form来完成这个任务吗?我可以使用javascript吗?我见过关于“事件处理程序”的东西,但我不知道它们是什么。我不想放弃和问,但我已经工作了19个小时,我不能再处理了。谢谢!

代码:(更新为打字)

代码语言:javascript
运行
复制
      <div id="cuisine_form_div">
  <% form_tag(hotels_path, :method => "GET", :id => :cuisine_form ) do %> 
  <%= check_box_tag('my_cuisine[]', 'Mexican', :onclick => "document.cuisine_form.submit();" ) %>
  <%= label_tag(:my_cuisine, "Mexican", :onclick => "document.cuisine_form.submit();" ) %>
  <%= check_box_tag('my_cuisine[]', 'Delis') %>
  <%= label_tag(:my_cuisine, "Delis") %>
  <%= submit_tag 'update' %>
  <% end %>
  </div><!--end.id="cuisine_form_div"-->

请注意,每当我像上面这样插入javascript时,它就会预先选中屏幕上的框,但不会向URL提交任何信息。如果我点击提交按钮,一切都很好,但"onclick“我无法得到的URL移动。

EN

回答 2

Stack Overflow用户

发布于 2010-01-20 20:37:21

我认为您想要做的是在每次单击时都需要测试复选框的“选中”状态。此时,您将需要读取从ID或VALUE属性中签入的内容。然后,如果在Chrome中使用Firebug或Developer工具,则可以警告()要调试或使用console.log的值。

另外,您将希望编写一个函数来放入您的onClick事件,而不是试图在事件中写入逻辑。

首先,只创建一个函数,如

代码语言:javascript
运行
复制
function clickCheckbox {
   /* paste your existing onClick logic */
}

然后从那里修改..。

如果你需要精确的语法,请告诉我。

我建议使用jQuery。将jQuery库添加到所有页面的head标记中。这样可以更容易地将函数用于AJAX和其他方面。

你可以:

代码语言:javascript
运行
复制
$('#CheckboxID').click(function() {
    if($(this).attr('checked')) {
        $(this).attr('checked',false);
    } else {
        $(this).attr('checked',true);
    }
});
票数 0
EN

Stack Overflow用户

发布于 2010-01-20 21:11:34

很多错误,但现在它在我的测试应用程序中工作!:)

这些点不见了/断了。

  • 表单需要id才能在Javascript中找到它
  • 标签需要第三个参数来设置选定的状态(第四个参数(您的第三个参数)是添加HTML代码)
  • 使用onchange,所以不管用户单击复选框还是标签。
  • 将正确的id添加到复选框中,以便将标签附加到复选框中。
  • 根据以前的更新/修复修复标签

生成的表单变得更像这样:

代码语言:javascript
运行
复制
<% form_tag(cuisine_path, :method => "GET", :id => :cuisine_form, :name => :cuisine_form ) do %>
  <%= check_box_tag('my_cuisine[]', 'Mexican', true, { :id => :cuisine_mexican, :onchange => "document.cuisine_form.submit();" }) %>
  <%= label_tag(:cuisine_mexican, "Mexican" ) %>
  <%= check_box_tag('my_cuisine[]', 'Delis', false, { :id => :cuisine_delis, :onchange => "document.cuisine_form.submit();" }) %>
  <%= label_tag(:cuisine_delis, "Delis") %>
  <%= submit_tag 'update' %>
<% end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2100528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档