如何为javascript函数设置和获取check_box_tag的ID?

我有一个带有check_box_tags的Ruby on Rails 3表单。 如何设置ID然后在javascript函数中获取值? 这是check_box_tag

  • IP Phones

我的javascript

 $(document).ready(function() { $('#device').change(function(){ if (($('#device').val() == "IP Phone") || ($('#device').val() == "IP PBX Systems")) { $('#phonepbx').css('display', 'none'); } else { $('#phonepbx').css('display', 'inline'); } }); }); 

我不知道如何设置和获取check_box_tag的id。 我试图根据他们选择的内容显示或隐藏div id =“phonepbx”。 如果他们选择前两个复选框之一,我想显示#phonepbx div。 否则将其隐藏起来。

谢谢

编辑这是HTML最终的结果:

 
  • IP Phones
  • 我确实需要jquery并需要jquery_ujs。 我需要别的东西吗?

     function checkHardware() { if ($('#device input:checkbox:eq(0)').is(':checked') || $('#device input:checkbox:eq(1)').is(':checked')) { $('#phonepbx').css('display', 'block'); } 

    根据您的说明,您只需检查是否选中了两个特定复选框中的至少一个:

     $(document).ready(function() { $('#device').change(function(event){ if ($(event.target).filter("input[value='IP Phone']:checked").length || $(event.target).filter("input[value='IP PBX Systems']:checked").length) { $('#phonepbx').css('display', 'inline'); } else { $('#phonepbx').css('display', 'none'); } }); }); 

    它看起来像你试图通过向div添加更改处理程序来捕获复选框事件。 这不是理想的陷阱,因为你必须搜索改变了什么。 但正如RustyToms所说,你的ID应该是RoR设定的’调查[硬件] []’。

     $(document).ready(function() { $('#survey[hardware][]').on('click', function(){ (this.checked && this.val().match(/IP Phone|IP PBX Systems/)) ? $('#phonepbx').hide() : $('#phonepbx').show(); }); });