ASP.NET 按钮单击清除 jQuery 水印

Posted

技术标签:

【中文标题】ASP.NET 按钮单击清除 jQuery 水印【英文标题】:ASP.NET button click clears jQuery watermark 【发布时间】:2013-09-23 07:57:12 【问题描述】:

我正在使用jQuery watermark plugin 在我的 ASP.NET 文本框上应用水印。文本框还附加了 ASP.NET 验证。当我单击页面上的任何按钮时,水印就会消失。有趣的是,当我将焦点放在文本框上然后将焦点移开时,会出现水印。因此,单击按钮使水印不可见。

谁能找到为什么会这样?

【问题讨论】:

为什么不用占位符? 我会试试这个:Watermark Textbox cleared on partial postback @Kuzgun,我没有使用占位符,因为用户仍在使用旧版浏览器 【参考方案1】:

根据Usage Notes:

表单提交 - 插件自动清除所有水印 在表单提交之前,因此您永远不需要手动删除 提交前的水印。

换句话说,这是设计使然。该功能是为了防止您不小心张贴水印并将其误认为是输入的数据。

你可以从第 425 行开始的source code 看到,它提供了以下解释:

// 为了在表单提交前可靠地清除所有水印, // 我们需要将表单的提交函数替换为我们自己的 // 功能。否则表单时水印不会被清除 // 以编程方式提交。

这就是为什么任何回发(全部或部分)都会导致水印被清除的原因。 (任何回发都会提交表单。)

如果您希望水印再次显示,对于部分回发,您需要重新加载它。 ($.watermark.showAll();)

【讨论】:

我尝试在更新面板和页面加载中调用 $.watermark.showAll(),但没有运气。应该放在哪里? function pageLoad() $.watermark.showAll(); 添加到您的javascript。每次您的页面回帖时都会调用它。这里有一篇短文讨论这个问题:Simplify ASP.NET AJAX client-side initialization

以上是关于ASP.NET 按钮单击清除 jQuery 水印的主要内容,如果未能解决你的问题,请参考以下文章

jquery用按钮刷新div单击asp .net

asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据

Jquery asp.net 按钮单击事件通过 ajax

通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发

Jquery 验证单击提交按钮两次 ASP.Net 核心 MVC 项目

ASP.NET MVC 应用程序:添加了 jQuery 事件来提交按钮单击,现在 jQuery Validate 插件不再工作。