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

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

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


那个jQuery方法(ChangeChannel)将文本追加到channelName div上,当它带有一个值呈现时,看起来像这样



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

最佳答案

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

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


并与这样的代码结合:

if ($('#MailingState').val() != "" && !$('#channelName').is(':empty'))

10-08 19:42