如何使用javascript阻止执行服务器端功能?

时间:2014-07-16 14:04:46

标签: javascript jquery asp.net vb.net postback

我正在尝试测试文本框值。

如果值符合我的条件,请执行javascript函数

ELSE

在后面的代码中执行textchanged事件。

我有一个jquery函数,在更改时使用javascript触发

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事件仍会导致回发。

MARKUP RENDERS AS

onchange="test(this);setTimeout('__doPostBack(\'ctl00$ctl00$ctl00$Master$Content$txt\',\'\')', 0)"

问题

如何将textchanged事件限制为仅在满足某些客户端条件时执行?

1 个答案:

答案 0 :(得分:2)

尝试返回文本框的错误内联,如下所示: -

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;" />