单选按钮改变两次发射

时间:2013-01-09 09:39:52

标签: javascript jquery model-view-controller

我有一组单选按钮。更改单选按钮时会触发事件。检查是否选择了某个单选按钮,如果是,则显示一个文本框。

<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>

剧本:

$('input:radio[name="HearAboutUs"]').change(function () {
    $('input[type=radio].input-validation-error').parent().removeClass('error-label');

    if ($('#radOther').is(':checked')) {
        if ($('#HearAboutUsDescription').is(':hidden')) {
            $('#HearAboutUsDescription').show("blind");
        }
    } else {
        if ($('#HearAboutUsDescription').is(':visible')) {
            $('#HearAboutUsDescription').hide("blind");
            $('#HearAboutUsDescription').val('');
        }
    }
});

这很好用!但是......这是一个部分页面,当用户分别按下/后退时,该页面被隐藏和取消隐藏。按下后,然后返回。以某种方式隐藏文本框的脚本会被调用两次!?!不是在它显示的时候。 主索引页面上的下一个/后面的代码:

$('#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两次,取而代之的是后退按钮。此外,按钮位于索引页面上,而不是部分页面。

0 个答案:

没有答案