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

时间:2012-01-09 22:10:46

标签: javascript jquery internet-explorer

如何在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.

1 个答案:

答案 0 :(得分:2)

虽然placeholder属性可能无法在&gt; IE9中使用,但它无法解释为什么浏览器会将placeholder属性的长度任意解释为其值的长度。

为了使事情变得更有趣,我无法在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);
});

也许您的问题不仅仅是不兼容的属性。