1

html 表单中的文本字段具有默认值,但我想显示占位符而不是默认值。有任何想法吗?

4

4 回答 4

4

从您在此处所说的内容来看,您实际上想监听焦点模糊<input>事件,并且如果没有输入任何内容,只需使用某种缓存清除内容即可恢复它。

<input id="foo" type="text" value="" data-value="" />

然后在脚本中

var foo = document.getElementById('foo');
foo.addEventListener('focus', function () {
    this.setAttribute('data-value', this.value);
    this.value = '';
});
foo.addEventListener('blur', function () {
    if (this.value === '')
        this.value = this.getAttribute('data-value');
});

演示

于 2013-07-23T02:48:01.413 回答
2

如果您只关心支持 HTML5 的浏览器,以下是一个选项:

<input type="text" name="myText" placeholder="My Placeholder">
于 2013-07-23T02:00:16.963 回答
2
<input type="text" name="foo"  placeholder="Foo Name"/>
<input type="hidden" name="foo" value="foo"/>
于 2017-11-02T06:23:47.490 回答
1

一方面是可行的;另一方面,我不确定你为什么应该这样做。

$('input[type="text"]').each(function (i, o) {
    var inputBox = $(o),
        swapInValue = function () {
            inputBox.val(inputBox.data('val'));
        },
        swapOutValue = function () {
            inputBox.data('val', inputBox.val()).val('');
        };
    inputBox.blur(swapOutValue).focus(swapInValue);
});
于 2013-07-23T02:06:43.263 回答