Javascript 单选按钮改变发射两次
我有一组单选按钮。更改单选按钮时,将触发一个事件。进行检查以查看是否选择了某个单选按钮,如果选择了,将显示一个文本框Javascript 单选按钮改变发射两次,javascript,jquery,model-view-controller,Javascript,Jquery,Model View Controller,我有一组单选按钮。更改单选按钮时,将触发一个事件。进行检查以查看是否选择了某个单选按钮,如果选择了,将显示一个文本框 <div class="row"> <div class="span3"> <label>@Html.RadioButtonFor(model => model.HearAboutUs, "radWebsite", new { @id = "radWebsite" }) Website</label&g
<div class="row">
<div class="span3">
<label>@Html.RadioButtonFor(model => model.HearAboutUs, "radWebsite", new { @id = "radWebsite" }) Website</label>
<label>@Html.RadioButtonFor(model => model.HearAboutUs, "radFromEmployee", new { @id = "radFromEmployee" }) An employee</label>
<label>@Html.RadioButtonFor(model => model.HearAboutUs, "radEvent", new { @id = "radEvent" }) At an event</label>
...
<label>@Html.RadioButtonFor(model => model.HearAboutUs, "radOther", new { @id = "radOther" }) Other</label>
</div>
<div class="span3">
@Html.ValidationMessageFor(model => model.HearAboutUs)
</div>
</div>
这个很好用!然而。。。这是一个部分页面,当用户分别按下next/back时,该页面将被隐藏和取消隐藏。按“下一步”后,然后返回。隐藏文本框的脚本会被调用两次!?!然而,当它被显示出来时就不是了。
主索引页上的下一页/下一页代码:
$('#nextBtn').click(function () {
$('#panel1').hide("", function () {
$('#panel2').show("blind");
$('#backBtn').show();
});
});
$('#backBtn').click(function () {
if ($('#panel2').is(":visible")) {
$('#headerTitle').text("Your Details");
$('#panel2').hide("", function() {
$('#panel1').show("blind");
$('#backBtn').hide();
});
}
if ($('#panel3').is(":visible")) {
$('#headerTitle').text("About Your Home");
$('#panel3').hide("", function() {
$('#panel2').show("blind");
});
}
if ($('#panel4').is(":visible")) {
$('#headerTitle').text("Water Use In The House");
$('#panel4').hide("", function() {
$('#panel3').show("blind");
$('#nextBtn').show();
$('#nextBtn').html("Next");
});
}
});
你知道我做错了什么吗?我对这个有点生气,呵呵:)谢谢
编辑=刚刚注意到我粘贴了两次下一个btn,替换为后退按钮。按钮也在索引页上,而不是部分页上。backBtn在哪里,如何工作?下一步和后退按钮在索引页上。以及控制这些按钮的脚本。隐藏/显示文本框的脚本位于部分页面上。hide/show函数似乎重新绑定了部分页面上的javascript事件,因此我要么必须解除对更改事件的绑定,要么重写hide/show函数,以避免重新绑定javascript。。除非有更好的方法..哪个面板是部分页面Panel1中的radiobutton组。我有一个解决方法,就是解除事件的绑定。解除绑定('change')好的,我设置了一个fiddle(),我无法复制这个问题,尽管我怀疑这是因为我没有正确解释源代码,或者缺少影响源代码的其他脚本。请看一看,并张贴一个更新的小提琴,如果你可以复制的问题。另外,我不知道您使用的是哪个版本的jQuery,所以我使用了1.7.2,以便可以包含UI效果。最后,1.7.2不喜欢使用空字符串作为
.hide
效果,因此我使用了“default”,以便.hide
方法可以工作。
$('#nextBtn').click(function () {
$('#panel1').hide("", function () {
$('#panel2').show("blind");
$('#backBtn').show();
});
});
$('#backBtn').click(function () {
if ($('#panel2').is(":visible")) {
$('#headerTitle').text("Your Details");
$('#panel2').hide("", function() {
$('#panel1').show("blind");
$('#backBtn').hide();
});
}
if ($('#panel3').is(":visible")) {
$('#headerTitle').text("About Your Home");
$('#panel3').hide("", function() {
$('#panel2').show("blind");
});
}
if ($('#panel4').is(":visible")) {
$('#headerTitle').text("Water Use In The House");
$('#panel4').hide("", function() {
$('#panel3').show("blind");
$('#nextBtn').show();
$('#nextBtn').html("Next");
});
}
});