2011-10-10 54 views
0

使用ajax我在这种情况发生之前导致OnTextChangedEvent有一些Javascript对输入字段进行验证检查并根据验证是否有效输出一些文本。我运行的Ajax重置了我的javascript所做的更改。这一切都发生在这个顺序:Ajax删除所做的任何更改我的javascript

Javascript fires!

文本变化表明

阿贾克斯火灾!

文本的变化复位

AJAX的部分自动回发包含在更新面板。没有提供任何代码是否有人有一种方法来阻止javascript更改重置的想法?

在这一天我会添加代码,因为我发现时间。以为我会至少得到这个问题。先谢谢了。

+0

哪管你是使用显示验证结果的文本? –

+0

你有没有试过我的解决方案?它火了! –

回答

1

文本更改是在DOM模型中进行的,不会传输到服务器。 如果ajax触发它将覆盖由javascript所做的DOM更改。

解决方案是将验证文本发送到服务器并通过ajax再次添加它们。

+0

这是有道理的,会给它一个去!谢谢。 – Anicho

+0

您的解决方案有效。但是我最终把所有的Ajax变更都推到了jscript中,稍微花了一些时间,但是觉得这是对我所做的更好的练习。 – Anicho

0

一种UpdatePanel的完全取代上 更新更新面板的内容。
这意味着您订阅的那些事件不是 更长的订阅,因为该更新面板中有新元素。
完整的答案here

在你的页面或母版页,就把下面的脚本

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 

    function EndRequestHandler(sender, args) 
    { 
    Validate(); //method that performs check on input field 
    } 
</script> 
+0

耶对不起伙伴,似乎没有为我工作:(当我在今天或本周后得到片刻,我会给它另一个:)。 – Anicho

+0

我很乐意帮助你.. –