【问题标题】:How to not submit watermark text?如何不提交水印文本?
【发布时间】:2011-03-06 21:46:07
【问题描述】:

我有这个代码:

$(document).ready(function() {
    $('.watermark').focus(function() {
        if (this.className == 'watermark')
        {
            this.className = '';
            this.reset = this.value;
            this.value = '';
        }
    });

    $('.watermark').blur(function() {
        if (this.value == '')
        {
            this.className = 'watermark';
            this.value = this.reset;
        }
    });
});

它工作正常,但是当我提交表单时,水印作为数据提交。在不修改我的 php 处理文件的情况下,是否可以将带水印的文本提交为空白?我的意思是:如果文本框的类是“水印”,则为所述文本框提交一个空白值。我不想修改我的 php 处理文件,但我不介意使用 JQuery。最好的解决方案是捕获提交按钮的点击事件并快速将带有水印值的文本框设置为空白吗?

【问题讨论】:

  • 最好的解决方案是不要通过设置 value 来制作水印。使用placeholder 或在(透明)输入下方添加标签。
  • 完全支持占位符吗?我无法让它工作。如何在输入下方放置标签?编辑:显然占位符文本仅适用于 Firefox 3.7+,我正在使用 3.6 我将升级但如果它是新的,我可能不应该使用它。
  • 要将标签放在输入下方,请使用绝对定位。未抛光的示例:dorward.me.uk/tmp/label-work/example.html
  • 对我来说,水印正在处理这个只有 chrome 和 firefox 的 IE 正在提交文本

标签: javascript jquery watermark


【解决方案1】:

如果我理解正确,这应该可以工作:

$('form').submit(function(){
    $(this).find('.watermark').each(function(){
        if(!this.reset)
             this.value = '';
    });
});

【讨论】:

    【解决方案2】:

    在文本输入元素上使用placeholder 属性:

    <input type="text" placeholder="Text goes here" id="foo" />
    

    由于这在某些较旧的浏览器中不起作用,请将 HTML5 placeholder 属性后备脚本添加到您的页面(如 thisthis)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多