在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次:在文档就绪()和异步回发之后(在endRequest())。但是在异步回发之后,掩码插件不会被映射。
有人理解这个问题吗?如果您能帮忙,我将不胜感激!
发布于 2011-06-01 18:18:53
我想说谢谢Aristos的帮助和正确的方向!在你的代码中,我只修复了这个字符串:
jQuery(document).ready(Init);//direct transfer function not work;因此,最终的代码如下所示:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(EndRequest);
function EndRequest(sender, args) {
Init();
}
$(document).ready(function () {
Init();
});
function Init() {
var control = $('#txtCustomerPhone');
InitPhonePattern(control);
}
function InitPhonePattern(args) {
$(args).mask("+7 (999) 999-99-99", { completed:
function () {
$('#btnCheckCustomerPhone').click();
}
});
}
</script>发布于 2011-05-31 21:14:15
代码中的问题是jQuery (文档).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>https://stackoverflow.com/questions/6188050
复制相似问题