我正在尝试测试文本框值。
如果值符合我的条件,则执行 javascript 函数
否则
在代码隐藏中执行 textchanged 事件。
我有一个在更改时使用 javascript 触发的 jquery 函数
JavaScript
function test() {
if ($('#<%= txt.ClientID%>').val() == '1') {
return false;
}
};
ASP.NET
<asp:TextBox ID="txt" runat="Server" AutoPostBack="true" onchange="test(this)" />
VB.NET
Protected Sub txt_TextChanged(sender As Object, e As EventArgs) Handles txt.TextChanged
...
End Sub
虽然调试函数显然返回 false,但 textchanged 事件仍然导致回发。
标记呈现为
onchange="test(this);setTimeout('__doPostBack(\'ctl00$ctl00$ctl00$Master$Content$txt\',\'\')', 0)"
问题
如何将 textchanged 事件限制为仅在满足特定客户端条件时执行?
最佳答案
尝试返回错误的文本框内联,如下所示:-
function test() {
if ($('#<%= txt.ClientID%>').val() == '1') {
return false;
}
return true;
};
<asp:TextBox ID="txt" runat="Server" AutoPostBack="true" onchange="if(!test(this)) return false;" />
关于javascript - 如何防止使用 javascript 执行服务器端功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24782896/