我怎樣才能告訴與JS之間佔位符的字段長度與字段內容長度在IE中的不同。我正在嘗試獲取輸入字段/文本區域內容的長度,但IE將佔位符文本作爲內容進行計數。如何在IE中獲得字段長度而不計佔位符文本
<input type="text" value="" id="some_field" placeholder="Test" />
jQuery("#some_field").val().length //in Safari/Chrome/FF = 0 in IE7/8 = 4.
我怎樣才能告訴與JS之間佔位符的字段長度與字段內容長度在IE中的不同。我正在嘗試獲取輸入字段/文本區域內容的長度,但IE將佔位符文本作爲內容進行計數。如何在IE中獲得字段長度而不計佔位符文本
<input type="text" value="" id="some_field" placeholder="Test" />
jQuery("#some_field").val().length //in Safari/Chrome/FF = 0 in IE7/8 = 4.
雖然placeholder
屬性可能無法在工作> 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);
});
或許有比一個不兼容的屬性更合你的問題。
謝謝,這裏的問題是我使用https://github.com/akaspin/jquery .f5模仿佔位符。所以顯然無法繞過它,因爲插件將值設置爲佔位符。 – brupm 2012-01-09 22:40:59
OP使用插件來模擬IE中的佔位符。實際上,佔位符在IE9中不工作,他們將在IE10中工作。無論如何,插件通過將佔位符值複製到輸入的值來模擬佔位符。因此,在檢查長度時,它是4(佔位符的長度)。 – 2012-01-09 22:41:18
啊...我沒有看到有關插件的評論,直到我刷新頁面。看起來像@火箭在他最後的評論中找到了答案。 – 2012-01-09 22:48:33
佔位符在IE <9中不起作用。如果你正在使用插件來模擬它,那麼它將用佔位符來替換值,從而使得長度爲4. – 2012-01-09 22:15:53
嗨Rocket,他們本身就是用IE5爲我製作一個HTML5表單。 – brupm 2012-01-09 22:16:53
@brupm然後你有一個非常特殊的IE8,因爲我的工作本身不工作。 – 2012-01-09 22:18:49