jQuery不会在语言更改时执行
本文关键字:执行 语言 jQuery | 更新日期: 2023-09-27 17:56:52
UPDATE:问题是js在UserControl中。
我有以下脚本
<script type="text/javascript">
var jSonUrl = '<%= ResolveUrl("~/Autocomplete/LocalityByPostalCode.ashx") %>';
var txtPostalCode = '#<%= this.txtPostalCode.ClientID %>';
var txtLocality = '#<%= this.txtLocality.ClientID %>';
$(function () {
var refresh = function () {
var txtPostalCode = '#<%= this.txtPostalCode.ClientID %>';
var txtLocality = '#<%= this.txtLocality.ClientID %>';
//for table row
onEachPageRefresh(txtPostalCode, txtLocality);
}
function onEachPageRefresh(paramPostalCode, paramLocality) {
$(paramPostalCode).blur(function (ev) {
var postalCode = $(this).val();
if (postalCode.length != 4)
return;
$.get(jSonUrl + '?' + postalCode, null, function (responseText, textStatus) {
var txtLoc = $(paramLocality).val('');
if (responseText.match(/'|/)) {
txtLoc.hide();
var all = responseText.split('|');
var select = $('<select />');
for (var i in all) {
select.append('<option>' + all[i] + '</option>');
}
txtLoc.val(all[0]);
txtLoc.parent().append(select);
select.change(function () { $(paramLocality).val($(this).val()) });
} else {
txtLoc.parent().find('select').remove();
txtLoc.show().val(responseText);
}
}, 'text');
});
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
refresh();
});
refresh();
});
</script>
我遇到的问题如下:如果我用英语来,它可以工作。如果我切换到匈牙利语,它不起作用。问题是这个脚本适用于网站的其他页面。事件不会触发。该技术 ASP.NET 网络表单。
更新:
还行。以下是更新:
我将脚本硬编码到页面,而不是像这样的用户控件
var jSonUrl = '<%= ResolveUrl("~/Autocomplete/LocalityByPostalCode.ashx") %>';
var txtPostalCode = '#MainContent_ucMainBuilding_txtPostalCode';
var txtLocality = '#MainContent_ucMainBuilding_txtLocality';
它奏效了。所以问题是js在UserControl中。
尝试
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
refresh();
});
而不是
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
refresh();
});