Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单选按钮改变发射两次_Javascript_Jquery_Model View Controller - Fatal编程技术网

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");
        });
    }
});