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中。

jQuery不会在语言更改时执行

尝试

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
    refresh();
});

而不是

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
    refresh();
});