使用jQuery检查并查看div元素是否为空

时间:2013-04-30 18:09:37

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

下面是我用来在我的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,当使用其中的值进行渲染时,它看起来像这样

enter image description here

以下是从该图片中检查Life Sales时获得的HTML

enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

并与您的代码结合使用:

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

答案 1 :(得分:1)

我输入一个alert声明来查找channelName的长度,然后它返回35,所以每次都必须有一些空格。我不得不将语句更改为以下trim空格并将变量添加到条件中。

            var channel = $.trim($('#channelName').html());
            if ($('#MailingState').val() != "" && channel != "")