我正在尝试使用所选单选按钮的值设置隐藏的表单字段。我有以下代码:
$(function () {
// set hidden form field with selected timeslot
$('input[name=["timeslot"]').live("click", (function () {
var valu = $(this).val();
alert(valu);
$("#selectedSlot").val(valu);
}));
});
所有单选按钮的名称都是“时间段”,我想在每次单击时运行此功能。但是,当我单击其中一个单选按钮时,警告框显示为空白。
更新:哎呀!没看到双方括号。但是我修好了它:
$('input[name="timeslot"]').live("click", (function () {
var valu = $(this).val();
alert(valu);
$("#selectedSlot").val(valu);
}));
我仍然遇到同样的问题。实际上,由于某种原因,警报框甚至不再出现。
更新2:实际上,在我的真实代码中,除了这个之外,我还在其初始块中注册了其他事件 - 如果除了单选按钮之外我还取出所有这些事件,它可以工作!
例如,如果我有这个:
$(function () {
// set hidden form field with selected interviewee
$('#interviewees').live("change", (function () {
var selected = $("#interviewees").val();
$("#selectedInterviewee").val(selected);
}));
// set hidden form field with selected timeslot
$('input[name="timeslot"]').live("click", (function () {
var valu = $(this).val();
alert(valu);
$("#selectedSlot").val(valu);
}));
});
然后单选按钮单击事件不会触发,但第一个(下拉列表)会触发。但是,如果我单独使用单选按钮,它就可以。任何想法????
输入标签如下所示:
<input id="slot_7:30-AM" name="timeslot" type="radio" value="slot_7:30-AM" />
我主要使用的是IE 8,但我在Firefox上试过这个并且发生了同样的事情。我做错了什么?
答案 0 :(得分:0)
没有看到你的HTML,我不能完全确定,但我认为问题是你正在使用的选择器:
$('input[name=["timeslot"]')
至少有两个问题可能会导致问题:
$('input[name="timeslot"]')
代替。<小时/> 已编辑以回复对以下答案的评论。
以下似乎有效:
$('input[name="timeslot"]').live('click', function() {
var valu = $(this).val();
alert(valu);
$("#selectedSlot").val(valu);
});
我当然是使用text
输入而不是hidden
,但由于选择器适用于id
,因此无论input
如何,它都应该有效类型。
答案 1 :(得分:0)
好的,我通过REVERSING事件注册的顺序让它工作:
$(function () {
// set hidden form field with selected timeslot
$('input[name="timeslot"]').live("click", (function () {
var valu = $(this).val();
alert(valu);
$("#selectedSlot").val(valu);
}));
// set hidden form field with selected interviewee
$('#interviewees').live("change", (function () {
var selected = $("#interviewees").val();
$("#selectedInterviewee").val(selected);
}));
});
唉。我回到我的观点,javascript是一个混乱的混乱。但无论出于何种原因,它现在都有效。 (他们现在都工作......非常特别。)