1

blur下面是我用来在我的 ASP MVC 3 视图中的文本框上放置事件的代码。如果为空,则代码可以正常工作#MailingState,但是它无法判断是否#channelName为空。

例如,如果#channelName为空但#MailingState不是,那么当我在 Ajax 调用中放置一个值时,#MailingZip每次getDrmTerritory都会触发。

这是 jQuery

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

#channelName这是它正在检查的段的 HTML

    <div id="channelName" class="M-display-field">
        @*this will be updated via ajax from Market Segment *@
        @Html.DisplayFor(model => model.Channel, new { style = "margin-left: 300px;" } )
    </div>

评论中提到的部分是通过另一个看起来像这样的 jQuery 方法更新的

function ChangeChannel() {
    //this function called if Market Segment changes, to update the channel
    var pendistcode = document.getElementById('Pendist');
    if (pendistcode == null) alert('Error: Cannot find Market Segment control');
    //alert('!pendistcode value is ' + pendistcode.value);

    $.ajax({
        type: 'POST',
        url: '/AgentTransmission/GetChannel/',
        data: { pendist: pendistcode.value },
        success: function (data) {
            //                alert("success: " + data);
            $('#channelName').html(data);
            $('#Channel').val(data);
        },
        error: function (data) {
            alert("failure to obtain Channel name");
        }
    });

    CheckTerritory('channel');

} //end ChangeChannel

jQueryChangeChannel方法div

在此处输入图像描述

这是您Life Sales从该图片中检查时获得的 HTML

在此处输入图像描述

4

2 回答 2

2

您可以像这样检查是否#channelName为空:

if ( $('#channelName').is(':empty') )

并与您的代码结合,如下所示:

if ($('#MailingState').val() != "" && !$('#channelName').is(':empty'))
于 2013-04-30T18:12:25.337 回答
1

我输入了一个alert语句来找出channelName' 的长度并返回 35,因此显然每次都会呈现一些空白区域。我不得不将语句更改为以下内容以trim去掉空格并将变量添加到条件中。

            var channel = $.trim($('#channelName').html());
            if ($('#MailingState').val() != "" && channel != "")
于 2013-04-30T18:38:25.327 回答