gpt4 book ai didi

UpdatePanel 异步回发后的 Javascript 事件订阅

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:01 26 4
gpt4 key购买 nike

在 asp.net 页面上异步回发后,jquery 事件处理程序出现问题。我读了this topic - 这是一个很好的解决方案,但我需要一个单独的功能。所以我正在使用 jquery masked plugin .

我现在的js代码是:

<script type="text/javascript">

jQuery(document).ready(function () {
var control = $("#txtCustomerPhone");

InitPhonePattern(this, control);

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(InitPhonePattern(this, control));
});

function InitPhonePattern(sender, args) {
$(args[0]).mask("+7 (999) 999-99-99", { completed:
function () {
$('#btnCheckCustomerPhone').click();}
});

}
</script>

如您所见,mask 被初始化了 2 次:在文档 Ready() 上和异步回发之后(在 endRequest() 上)。但是 mask 插件在异步回发后没有映射。

有人理解问题吗?我将不胜感激!

最佳答案

您的代码中的问题是 jQuery(document).ready 未在更新面板之后运行,因此您需要从 jQuery 中创建 endRequest。

试试这个方法:

<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);

function InitializeRequest(sender, args) {
}

function EndRequest(sender, args) {
Init();
}

jQuery(document).ready(function(){Init();});

function Init()
{
var control = $("#txtCustomerPhone");
InitPhonePattern(control);
}

function InitPhonePattern(args) {
$(args[0]).mask("+7 (999) 999-99-99", { completed:
function () {
$('#btnCheckCustomerPhone').click();}
});
}
</script>

关于UpdatePanel 异步回发后的 Javascript 事件订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com