jQuery不会在语言更改上执行

时间:2011-05-19 16:09:34

标签: c# jquery asp.net

更新:问题是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 Web表单。

更新

确定。这是更新:

我将脚本硬编码到Page,而不是像这样的

用户控件
 var jSonUrl = '<%= ResolveUrl("~/Autocomplete/LocalityByPostalCode.ashx") %>';
        var txtPostalCode = '#MainContent_ucMainBuilding_txtPostalCode';
        var txtLocality = '#MainContent_ucMainBuilding_txtLocality';

它有效。所以问题是js在UserControl中。

1 个答案:

答案 0 :(得分:0)

尝试

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

而不是

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