javascript – 如何在IE中获取字段长度而不计算占位符文本

如何在IE中占位符的字段长度与字段内容长度之间用JS来区分JS.我试图获取输入字段/文本区域的内容的长度,但IE将占位符文本计为内容.

<input type="text" value="" id="some_field" placeholder="Test" />

jQuery("#some_field").val().length //in Safari/Chrome/FF = 0 in IE7/8 = 4.

最佳答案 虽然占位符属性可能在> IE9中不起作用,但它并不能解释为什么浏览器会任意将占位符属性的长度解释为其值的长度.

为了使事情更有趣,我无法在IE7或IE8中复制此行为.在两个浏览器中,当字段为空时,我得到的长度为0.

这是我运行的脚本:http://jsfiddle.net/ASmJX/1/

我还使用prop()方法来查看它是否有所作为.我建议你这样做.

HTML

<input type="text" value="" id="some_field" placeholder="Test" />

<p>
    <button type="button" id="test_val">Check Length - val()</button>
    <button type="button" id="test_prop">Check Length - prop()</button>
</p>

JS

$('#test_val').on('click', function() {
    alert($("#some_field").val().length);
});

$('#test_prop').on('click', function() {
    alert($("#some_field").prop('value').length);
});

也许您的问题比不兼容的属性更多.

点赞