【问题标题】:Leave event of the TextBox Validation文本框验证的离开事件
【发布时间】:2013-11-06 15:48:25
【问题描述】:

所以我有两个文本框,都被条形码扫描仪使用。 Textbox1 是材料,Textbox2 是进度。我想在 TB2 扫描“F4”并聚焦 Textbox1 时清除 TB1 和 TB2。

我想不通,所以我来找你。

感谢您的帮助。

【问题讨论】:

  • “扫描”是指TB2.Text == "F4"?
  • 是的@germi 我希望它使用 if...else 。 if (TB2.Text == "F4") then [clear TB1 and TB2 and focus TB1) else Submit (button)

标签: c# asp.net validation textbox


【解决方案1】:

因此捕获条码扫描很棘手。事件模型是问题所在。更糟糕的是,您使用的是 ASP.NET,所以它会变得更加困难。但是,使用 JavaScript 是可能的。考虑以下 jQuery:

$("#textBox2").on('keyup', function(event) {
    o = $(this);
    if (o.val() === 'F4') {
        // post the values back to the server via AJAX

        // clear the text boxes
        $("#textBox1").val('');
        o.val('');

        // focus the first text box
        $('#textBox1").focus();
    }
});

其中#textBox2 是您要查询的input 元素的id 属性,#textBox1 是包含物质价值的input 元素的id 属性。

这可能技术上被 ASP.NET 回发模型破解,但它不会很漂亮。您必须使用相同的 JavaScript 事件来实际强制回发:

$("#textBox2").on('keyup', function(event) {
    o = $(this);
    if (o.val() === 'F4') {
        $('#formName').submit();
    }
});

其中#formName 是您所在的form 元素的id 属性。

然后在服务器端,您必须使用第二个文本框的 TextChanged 事件并检查它的值以知道您应该清除两者的值。只是有点变幻莫测。

最后,使用这种回发模型,您必须注册一些客户端启动脚本以将焦点设置到第一个文本框,因为您需要一些 JavaScript 来执行此操作。如您所见,它变得更丑了。

【讨论】:

  • protected void TB2_TextChanged(object sender, EventArgs e) { if (TB2.Text == "F4") { TB2.Text = String.Empty; TB1.Text = String.Empty; AutoPostBackControl = "真"; //不起作用 TB2.Focus(); } } 我能够使用它,它有点像我想要的那样工作。
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
相关资源
最近更新 更多