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

标签 javascript jquery asp.net vb.net postback

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

如果值符合我的条件,则执行 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/

相关文章:

c# - 从 IIS 7 asp.net c# 获取 .ini 文件

c# - 使用ServiceStack和Signalr的Redis MQ

javascript - Jquery 移动双范围 slider 重新加载新范围

javascript - 这个函数有什么问题吗?我无法显示按钮并运行函数

javascript - 预期换行符为 'LF' 但发现 CRLF

javascript - Kendo Grid 的小单元格中的 Kendo DropDownList trim

c# - 使用 C# 从数据库获取 Mysql 数据不起作用

javascript - 如何从 Backbone.LocalStorage 获取 Backbone.Collection

javascript - ScroolToTop 根据用户的滚动显示和隐藏

javascript - 如果两个条件都为真,我需要 jQuery 来执行任务