【问题标题】:Validate data when textbox loses focus当文本框失去焦点时验证数据
【发布时间】:2012-09-15 16:46:29
【问题描述】:

在我的 ASP.Net Web 应用程序中,有一个用于接收 ProductId 的文本框。当用户将数据输入到 ProductId 文本框并移至下一个文本框时,我想根据表验证数据,如果找到匹配的记录,我想在不同的控件(只读和普通文本框)中显示产品详细信息,否则我想要显示有关“新产品”的消息并继续。我不想在用户输入所有数据并按下保存按钮后进行验证,但应该立即完成。我希望 Web 表单文本框有 LostFocus 事件,但不知道如何处理要求。

【问题讨论】:

  • ASP .NET 是服务器端,您说的是客户端事件。您将不得不编写一些客户端代码来做您想做的事情,可能需要通过 AJAX 往返于服务器。
  • 正在验证的 ProductId 在客户端,但要验证的数据来自数据库服务器。我是新手,没有使用 AJAX 或 jQuery 的经验。几个例子对我来说将是一个很好的学习经验。
  • 打开网络浏览器,输入 www.google.com。在搜索框中 - 输入 AJAX JQUERY ASP.NET 并单击搜索。我试过了,得到了超过 1200 万个结果。

标签: c# asp.net


【解决方案1】:

ASP.NET 验证器没有 ajax 样式的即时检查。

  1. 将自定义验证器附加到与验证方法服务器端挂钩的文本框。
  2. 使用 javascript,您需要将事件处理程序连接到 focusout 事件并进行 ajax 调用。该调用会将值发送回服务器并获得有效与否的响应。

这个站点:http://brian.dobberteen.com/code/jquery_ajax_custom_validator/ 会帮助你很多,但有一件事是它只会在页面提交时触发。您需要将一个额外的事件处理程序连接到您的文本框以在 focusout 上调用验证方法

【讨论】:

    【解决方案2】:

    解决方法很简单,请阅读这篇文章:

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.servervalidate.aspx

    您只需要执行 javascript 调用来触发服务器验证,使用事件 onlostfocus。

    【讨论】:

    • 需要成为“客户端”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    相关资源
    最近更新 更多