使用javascript在Struts2文本字段中占位符

时间:2011-11-14 09:53:22

标签: javascript struts2 placeholder

美好的一天!

我正在尝试在Struts2 Textfield上创建一个占位符。问题是,它没有内置属性。所以我决定使用javascript。但我不知道如何在struts文本字段中实现它。

javascript中html textfield占位符的代码如下:

HTML:<input type="text" name="billingNameStreet" class="input" title="Street"/>

   <script type="text/javascript">
        $(':input[title]').each(function() {
            var $this = $(this);
            if($this.val() === '') {
                $this.val($this.attr('title'));
            }
            $this.focus(function() {
                if($this.val() === $this.attr('title')) {
                    $this.val('');
                }
            });
            $this.blur(function() {
                 if($this.val() === '') {
                     $this.val($this.attr('title'));
                 }
            });
        });
    </script> 

如何在我的struts2文本字段中实现它:

<s:textfield label="TEST" name="test" cssClass="haha"/>
<s:textfield label="TEST1" name="test1" cssClass="haha1"/>
<s:textfield label="TEST2" name="test2" cssClass="haha2"/>

或者是否有其他方法可以在Struts2文本字段中创建占位符?

提前致谢

1 个答案:

答案 0 :(得分:1)

此处,您的jQuery代码表明选择器是具有input属性的title元素。在struts2标记中,未指定标题。在<s:textfield/>代码中,您可以使用将呈现为html title属性的title属性。因此,您的代码需要更改为:

<s:textfield label="TEST" name="test" cssClass="haha" title="haha"/>
<s:textfield label="TEST1" name="test1" cssClass="haha1" title="haha1"/>
<s:textfield label="TEST2" name="test2" cssClass="haha2" title="haha2"/>

您可以将此文档用于将来的参考:

http://struts.apache.org/2.0.14/docs/textfield.html