我有这个TextBox txtCustomerName
,它与一个Ajax AutoCompleteExtender
相关联,我正在做的是在AutoCompleteExtender
的OnClientItemSelected
调用函数LoadCutomerDetails
与jQuery
。像这样的东西..jQuery根据条件触发事件?
<asp:TextBox ID="txtCustomerName" runat="server" ClientIDMode="Static"></asp:TextBox>
<ajax:AutoCompleteExtender runat="server" ID="autoComplete1" TargetControlID="txtCustomerName"
ServicePath="~/AutoComplete.asmx" ServiceMethod="GetCompletionList" MinimumPrefixLength="1" CompletionInterval="10" CompletionSetCount="15" OnClientItemSelected="PopulateData">
和填充数据被定义为
function PopulateData() {
var data2 = $('#txtCustomerName').val().split('-')[0];
var newData = data2.substring(0, data2.length - 1);
$.ajax({
url: '/AutoComplete.asmx/GetPriorityAndRemarks',
type: 'POST',
timeout: 5000,
datatype: 'xml',
cache: false,
data: 'arg=' + newData,
success: function (response) {
var doc = response;
var result = $(doc).find("string").text();
// the values is in form of name, address, mobile, priority and remark
var resultAry = result.split(':');
$('#lbCustomerName').val(resultAry[0]);
$('#lblAddress').text(resultAry[1]);
}
});
};
现在,我要做的是一个事件处理程序上focusout
事件的关联jQuery
,检查是否lbCustomerName
和lblAddress
有任何价值,如果不是那么这是一个新客户,所以打开一个弹出对话框,其中可以添加详细信息,等等。
问题是
个该事件的内容事件触发前数据可能充满
lbCustomerName
和lblAddress
(由填充数据),所以它永远是零,即使有数据。 (我通过显示一个警告检查重点出事件,警报被前显示标签(一个或多个)进行了更新的文本。)用户也可以型在文本框中,而不是只选择一个来自
AutoCompleteExtender
的清单,对吗?那么,在这种情况下,PopulalteData
将不会被调用,但重点将是。
我想要做的是,调用focusout
事件前提条件当用户类型成箱(即OnClientItemSelected
是不启动),因为如果他不是从列表中选择,它的一个新客户明显。 那么有没有办法做到这一点?或者,如果不是这样,那么还有其他方法可以完成我所尝试的?
1.这可能是事实,没有想到这一点! 2.我可以在'PopulateData'中做所有事情,但是如果用户键入“M”从“自动完成”中选择“Mathew”并且标签结束,则在激发聚焦时,“TextBox”将具有“M”而不是“Mathew”在此之后,价值将变成“马修” – Razort4x