使用jquery获取空输入字段中占位符的值?

时间:2017-11-17 21:11:04

标签: jquery user-input placeholder

有点奇怪,我很难过。

当我有一个带占位符的输入字段时,例如:

<input id="box1" placeholder="not applicable">

我一直能够获取用户输入,或者如果输入是为空,则使用jquery这样的占位符值:

var text = $('#box1').val();

没什么大不了的。使用jquery .val()总能做到这一点。然后我开始在以前工作的应用程序中看到一些代码输出错误,其中空输入没有捕获占位符值。

javascript引擎是否会改变这一点?或者,如果输入字段为空,是否有新的方法来获取占位符值?

见这个例子:

$('#done').on('click', function(){
	  if($('#box3').val() == ''){
            var box3 = $(this).data('placeholder');
        } else {
        var box3 = $('#box3').val();
        }
  $('#output').val(box3);
});

// Clicking the button doesn't capture the placeholder value if empty?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<input id="box3" placeholder="not applicable">
<br><br>
<button id="done">
Done
</button>
<br><br>
<textarea id="output"></textarea>
<br><br>
<p>
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1?
</p>

1 个答案:

答案 0 :(得分:1)

使用attr('placeholder')。此外,您在this语句中使用if是错误的。它提到了click函数的主题。

&#13;
&#13;
$('#done').on('click', function(){
	  if($('#box3').val() == ''){
            var box3 = $('#box3').attr('placeholder');
        } else {
           var box3 = $('#box3').val();
        }
  $('#output').val(box3);
});

// Clicking the button doesn't capture the placeholder value if empty?
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<input id="box3" placeholder="not applicable">
<br><br>
<button id="done">
Done
</button>
<br><br>
<textarea id="output"></textarea>
<br><br>
<p>
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1?
</p>
&#13;
&#13;
&#13;