【发布时间】:2009-07-09 14:32:27
【问题描述】:
我无法找到一种方法来有条件地取消使用 javascript onchange 事件的 asp:TextBox 的 OnTextChanged AutoPostBack。我想这样做是因为我很容易在客户端检查一些条件,这些条件会否定回发的必要性。
我在客户端 HTML 中生成了类似的内容:
<input name="tb1" type="text" onchange="return DoMyCheck(); setTimeout('__doPostBack(\'tb1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="tb1"/>
<script type='text/javascript'>
function DoMyCheck()
{
if(something)
{
return false;
}else
{
return true;
}
}
</script>
我认为如果 DoMyCheck() 返回 true 或者如果 DoMyCheck() 返回 false 则取消回发。显然,无论如何它每次都会取消。请记住,当我设置 AutoPostBack = true 时,我简化了长 .NET ID 和 setTimeout() 和 OnKeyPress() 内容。我真正放入的唯一代码是 onchange 事件。
我在这里看到了一个解决方案:http://www.eggheadcafe.com/community/aspnet/3/10042963/try-this.aspx
但这在我看来是不可接受的,因为如果我能提供帮助,我不想手动挂钩到内部 .NET javascript 来执行回发。
有人有更好的解决方案吗?非常感谢您提供的任何帮助。
【问题讨论】:
标签: .net javascript