在窗体中所有字段聚焦时如何添加占位符?

时间:2019-05-22 14:02:30

标签: jquery html css css3 textinput

$('*').focus(function(){
$(this).removeAttr("placeholder");
});

这用于我表单中的所有字段。但我找不到添加方法。

$('*').focusout(function(){
$(this).attr("placeholder","abc"); 
} 

这用于单个字段,但我需要所有通常隐藏和显示的字段

2 个答案:

答案 0 :(得分:2)

没有特别优化,但是可以正常工作

$('*:input').each(function(){
$(this).data('placeholder',$(this).attr("placeholder"))
$(this).removeAttr("placeholder");
$(this).on('focus', function(){
	$(this).attr("placeholder", $(this).data('placeholder'));
});
$(this).on('focusout', function(){
	$(this).removeAttr("placeholder");
});
});

答案 1 :(得分:0)

看看这个JSFiddle示例,当您聚焦任何字段时,所有输入的占位符都会改变。< / p>

<form id="form">
  <p>Form</p>
  <p><input/></p>
  <p>
    <select>
      <option id="selectPlaceholder"></option>
      <option>Option 1</option>
      <option>Option 2</option>
      <option>Option 3</option>
    </select>
  </p>
  <p><textarea></textarea></p>
  <p>
    <button id="reset" type="button">Reset placeholder</button>
  </p>
</form>

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#form {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  margin: 0 auto;
  width: 300px;
}

input, select, textarea {
  width: 90%;
  text-align: center;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

$("input, select, textarea").focusout(function(){

    $("input, select, textarea").attr(
        'placeholder',
        'Text for the placeholder focusout'
    )
    $("#selectPlaceholder").html('Text for the placeholder focusout');

});

$('#reset').click(function(){
    $('input, select, textarea').removeAttr('placeholder');
    $('#selectPlaceholder').html('');
});