我试图获得一个id
的复选框。
页面上有几个id
的复选框:channel_left_restream_ids_42
,channel_left_restream_ids_44
等。我需要处理一个事件,当其中一个选中并获得id
时被检查的。
因此对于代码为<input type="checkbox" value="42" checked="checked" name="channel[left_restream_ids][]" id="channel_left_restream_ids_42">
和coffescript的复选框,如下所示:
$("input[id*=channel_left_restream_ids]").change (e) =>
alert($(this).attr("id"))
我无法让它发挥作用。它说undefined
。我尝试了很多替代方案,但都没有效果。我在哪里做错了?
答案 0 :(得分:0)
在你的jfiddle中,我给每个复选框一个getId的类名,并使用了这段代码。
这应该让你朝着正确的方向前进。
jQuery(".getId").each(function(){
jQuery(this).on("change", function(){
var ids = jQuery(this).attr("id");
console.log(ids);
});
});
如果复选框都具有相同的名称,您也可以使用它。
答案 1 :(得分:0)
出乎意料的是,问题不在于jQuery或像这样的问题。
这只是我咖啡中一个大胆阵列的问题。
用$("input[id*=channel_left_restream_ids]").change (e) =>
替换$("input[id*=channel_left_restream_ids]").change (e) ->
(差异只是在行尾的数组)就可以了。
答案 2 :(得分:-1)
我希望我理解你的问题,但我希望这可能会让你朝着正确的方向前进:
要知道是否选中了此特定复选框,您必须使用其确切的ID。
因此,在您的脚本中,您正在寻找此ID: ID * = channel_left_restream_ids
但复选框的ID为“channel_left_restream_ids_42”
我不知道您正在使用的代码,但有可能存在许多“channel_left_restream_ids”,或者该ID可用于其他不是复选框的内容。
所以这值得一试: [ID * = channel_left_restream_ids_42]