下面是我用来在我的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
答案 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 != "")