使用jquery删除输入占位符

时间:2014-02-28 14:31:09

标签: javascript jquery

有没有人知道如何使用jquery删除输入占位符?

我想要做的是,如果其中一个inputbox得到了一个值...所有的inputbox占位符都将被移除....有没有人知道该怎么做?

<input type="text" name="name" placeholder="1.)">
<input type="text" name="age" placeholder="2.)">
<input type="text" name="address" placeholder="3.)">

10 个答案:

答案 0 :(得分:18)

应该工作:

$(':input').removeAttr('placeholder');

答案 1 :(得分:3)

我不推荐删除占位符

相反,做一个焦点,这将在那一刻自动隐藏占位符:

$(element).focus();

答案 2 :(得分:2)

.removeAttr()

var txtbox = $('input[type="text"]');
txtbox.change(function () {
    txtbox.removeAttr('placeholder');
});

答案 3 :(得分:2)

获取所有输入,并附加一个更改事件处理程序,在事件处理程序中获取所有输入的值,将值连接在一起,如果它仍然没有,则没有任何输入具有值,如果它有长度,至少有一个输入具有值,您可以删除占位符属性:

var inputs = $('input[type="text"]');

inputs.on('change', function() {
    if ( $.map(inputs, function(el) { return el.value; }).join('').length ) 
        inputs.removeAttr('placeholder');
});

FIDDLE

答案 4 :(得分:0)

$('input[name="name"]').removeProp('placeholder');

答案 5 :(得分:0)

您可以在keyup上将占位符更改为空字符串。

$("input[type=text]").keyup(function() {
    $("input[type=text]").attr("placeholder","")
});

JSFiddle demo

答案 6 :(得分:0)

这样的事情会起作用吗?未经测试,但它应该在第一次更改任何输入时删除占位符属性。

var inputs = $('input');

inputs.one('change', function(){
    inputs.removeAttr('placeholder');
});

答案 7 :(得分:0)

我已经更进了一步,万一你也想要这个。此代码将删除所有文本输入中的占位符文本(如果其中任何一个具有值),但如果您删除所有值,则会将占位符文本放回。可能没有必要,但有它......

var $inputs = $("input:text");

$inputs.on("change", function() {
    if ($.map($inputs, function(el) { if (el.value) return o.value; }).length) {
        $inputs.each(function() {
            this._placeholder = this.placeholder;
            $(this).removeAttr("placeholder");
        });
    } else {
        $inputs.each(function() {
            this.placeholder = this._placeholder;
        });
    }
});

<强> jsfiddle example...

答案 8 :(得分:0)

如果您想将其重置回原始的占位符,而不是完全删除它,请先尝试清除val(),然后添加attr()

$('#name')。val('');

$('#name')。attr('placeholder','无论您以前的占位符是什么');

答案 9 :(得分:-1)

尝试:

if ($(input).val()) {
$(input).attr("placeholder", "")
}