【问题标题】:Is there another way to use onTextChanged for TextBox and avoid page refreshing every time?是否有另一种方法可以将 onTextChanged 用于 TextBox 并避免每次刷新页面?
【发布时间】:2016-08-22 10:56:38
【问题描述】:

我有一个 JavaScript,它正在从文本字段进行一些计算,每次我传递其他文本字段时,JavaScript 都会在 TextBox 'onTextChanged' 中的操作中调用,这需要 AutoPostBack = True 但每次刷新我的页面时,因为我每次都需要在 TextBox 上单击两次。

我已经尝试将这行代码放在 PageLoad 上,但它仍然需要 'AutoPostBack = True' 并且它还在刷新页面:

 CType(Me.FV.FindControl("txtLP_1"), TextBox).Attributes.Add("onblur", "javascript:startCalc();")

PageLoad 上的代码如下所示:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

    If Not IsPostBack Then

    End If

    CType(Me.FV.FindControl("txtLP_1"), TextBox).Attributes.Add("onblur", "javascript:startCalc();")

End Sub

【问题讨论】:

  • 您确定需要 AutoPostBack 吗?这是为了捕获服务器端事件。听起来您当时只是在捕获客户端事件。
  • 如果我从 TextBox 中删除 AutoPostBack,那么它不会调用我的 JavaScript。您适合举办客户端活动。
  • 这表明绑定客户端事件存在问题。你能发布你的整个页面加载吗?
  • 好的,页面加载看起来不错。您绝对不应该要求 AutoPostBack。如果您将其关闭,您的浏览器控制台中是否会出现任何 JS 错误?也许将 startCalc 方法更改为简单地设置一条警告行以查看是否启动:alert('Hello World');

标签: javascript asp.net vb.net visual-studio-2010


【解决方案1】:

而不是设置AutoPostBack="True" 并在每次TextBox 控件中的值更改时调用回发,为什么不通过jQuery(完全客户端)处理文本更改事件?

<head runat="server">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $('#' + '<%: TextBox1.ClientID %>').on('input', function (e) {
                var value = $(this).val();
                alert(value);
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </form>
</body>

【讨论】:

  • 我试过这个: 我收到此错误:0x800a1391 - JavaScript 运行时错误:'$' is undefined
  • 我只需要将 jquery.min.js 保存在我的项目中,所以现在可以工作了。
  • 丹尼斯,这个 jquery.min.js 可以很好地与 google chrom 配合使用。如何调整它以与 Internet Explorer 一起使用?
  • 在 IE 中使用 F12 来调试您的 javascript 并查看它为什么不工作。尝试使用另一个 .js 版本。Google 问题并进行一些试验和错误,直到您弄明白
  • 我已经尝试过调试。没有错误,可能我需要下载一些其他的库。
猜你喜欢
  • 2019-08-29
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多