0

我正在尝试提出一个简单的 jquery 输入水印功能。基本上,如果输入字段没有值,则显示它的标题。

我想出了将输入值分配为标题所需的 jquery,但它不会显示在页面上,就好像它是手动编码到表单中的值一样。

当页面加载到输入字段中以供用户查看时,如何获得此值以显示该值?

这是小提琴:http: //jsfiddle.net/mQ3sX/2/

$(document).ready(function() {

    $(".wmk").each(function(){
      var value = $(this).val();
      var title = $(this).attr("title");

      if (value == '') {
        value = title;
      }

      $(".result").text(value);
      // You can see I can get something else to display the value, but it does 
      // not display in the actual input field.            
    });

});
4

4 回答 4

2

您是否考虑过使用现成的版本,而不是自己编写?这并不完全符合您的要求,但它们具有您可能喜欢的附加功能(例如,表现得像一个正常的占位符,当您开始键入时会自动隐藏占位符)。

http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html http://archive.plugins.jquery.com/project/input-placeholder

于 2012-04-10T18:07:53.060 回答
1

使用下面的代码行。您需要指定输入元素,并更新其值。由于您的输入字段有一个名为“.wmk”的类,因此我使用以下代码。您可以使用“id”并使用“#”代替“.”。在http://api.jquery.com/category/selectors/阅读有关选择器的更多信息

$(".wmk").val(value);

更新了 jsfiddle http://jsfiddle.net/bhatlx/mQ3sX/9/

更新:由于您在“.wmk”上使用“每个”,您可以使用

 $(this).val(value)
于 2012-04-10T18:04:05.990 回答
0

我想你想要的是这样的:

$(document).ready(function() {

    $(".wmk").each(function(){
    var value = $(this).val();
    var title = $(this).attr("title");

    if (value == '') {
        $(this).val(title);
    }

    $(".result").text(value);

    });

});
于 2012-04-10T18:08:02.580 回答
0

可能你想要像下面这样的东西,

演示

$(document).ready(function() {

    $(".wmk").each (function () {
        if (this.value == '') this.value = this.title;
    });

    $(".wmk").focus(
        function () {
            if (this.value == this.title) this.value = '';
        }
    ).blur(
        function () {
            if (this.value == '') this.value = this.title;
        }
    );

}); // end doc ready
于 2012-04-10T18:10:16.183 回答