jQuery模糊不在单选按钮上触发

时间:2013-04-30 17:10:44

标签: jquery asp.net-mvc asp.net-mvc-3 jquery-ui

以下是我在ASP MVC 3视图中尝试将.blur事件附加到单选按钮(此代码在document.ready内)的语法。

我也没有在Chrome的调试控制台或源代码管理器中看到任何错误。我也在IE中试过这个并且无法让它工作(我已经读过Chrome有blur事件的问题。任何帮助将不胜感激。

我尝试过以下标记:#AlignmentL#AlignmentL:radio,但没有任何运气。

    $('AlignmentL:radio').blur(function () {
        alert('Inside AlignmentL');
        if ($('#LocationZip').val() != "" && $('#LocationState').val() != "" && $('#channelName').html() != "") {
            getDrmTerritory($('#LocationZip').val(), $('#LocationState').val(), $('#channelName').html());
        }
        else if ($('#channelName').html() != "") {
            $('#channelName').html() = "";
        }
    });

修改

以下是ASP MVC视图中的相关HTML

    <div class="M-editor-label">
        @Html.LabelFor(model => model.AlignmentAddressInd)<span class="req">*</span>
    </div>
    <div class="M-editor-field" onclick="CheckTerritory('align');">
        @Html.RadioButtonFor(model => model.AlignmentAddressInd, "M", new { Checked = "checked", id = "AlignmentM" }) Mailing  
        @Html.RadioButtonFor(model => model.AlignmentAddressInd, "L", new { id = "AlignmentL" }) Location 
        @Html.ValidationMessageFor(model => model.AlignmentAddressInd)
    </div>

第二次编辑

我刚刚想到,由于我在两个单选按钮上设置了.blur,我可能会取消另一个。这是完整的部分

    $('#AlignmentL:radio').blur(function () {
        alert('Inside AlignmentL');
        if ($('#LocationZip').val() != "" && $('#LocationState').val() != "" && $('#channelName').html() != "") {
            getDrmTerritory($('#LocationZip').val(), $('#LocationState').val(), $('#channelName').html());
        }
        else if ($('#channelName').html() != "") {
            $('#channelName').html() = "";
        }
    });

    $('#AlignmentM:radio').blur(function () {
        alert('Inside AlignmentM');
        if ($('#MailingZip').val() != "" && $('#MailingState').val() != "" && $('#channelName').html() != "") {
            getDrmTerritory($('#MailingZip').val(), $('#MailingState').val(), $('#channelName').html());
        }
        else if ($('#channelName').html() != "") {
            $('#channelName').html() = "";
        }
    });

第三次编辑

没关系,我评论了其中一个单选按钮,它仍然无法正常工作。

2 个答案:

答案 0 :(得分:1)

我不得不放弃.blur方法(这可能是更好的想法,因为我希望这些事件在点击时触发,而不是在它们失去焦点时)并使用.change。现在一切正常。

    $('#AlignmentM:radio').change(function () {
        alert('Inside AlignmentM');
        var channel = $.trim($('#channelName').html());
        if ($('#MailingZip').val() != "" && $('#MailingState').val() != "" && channel != "") {
            getDrmTerritory($('#MailingZip').val(), $('#MailingState').val(), channel);
        }
        else if ($('#territoryName').html() != "") {
            $('#channelName').html() = "";
        }
    });

    $('#AlignmentL:radio').change(function () {
        alert('Inside AlignmentL');
        if ($('#LocationZip').val() != "" && $('#LocationState').val() != "" && $('#channelName').html() != "") {
            getDrmTerritory($('#LocationZip').val(), $('#LocationState').val(), $('#channelName').html());
        }
        else if ($('#territoryName').html() != "") {
            $('#channelName').html() = "";
        }
    });

答案 1 :(得分:0)

你错过了#那里

 $('#AlignmentL:radio').blur(function () {

或类似

$('#<%=AlignmentL.ClientId %>:radio').blur(...