我使用placeholder屬性在輸入字段中顯示一些信息。爲了在IE中支持這個我使用jquery。該代碼在IE中工作。但是,根據用戶在下拉列表中選擇的內容,某些輸入字段中佔位符的值也需要更改,這是問題所在。用jquery更改佔位符文本也在IE中自動更新
調整佔位符屬性中的值不會自動更改輸入字段的值。
我用的就是這個確定輸入字段的值的代碼是:
if(!$.support.placeholder) {
var active = document.activeElement;
$('input[type=text], textarea').focus(function() {
if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
$(this).val('').removeClass('hasPlaceholder');
}
}).blur(function() {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
}
});
而當我想改變功能的屬性文字我叫SetPlaceholderText:
$("#affected-input-field").attr("placeholder", "New placeholder text");
但是這並不能解決我的問題。
基本上就是我想要做的是:
<input id="affected-input-field" value="Old placeholder text" placeholder="Old placeholder text" />
僞代碼:
if($('#dropdown').val() == '1') {
$(#affected-input-field).SetPLaceholderText("New Placeholder text...");
}
,並從該代碼運行時是在輸入字段中可見文本的那一刻是新價值:
<input id="affected-input-field" value="New placeholder text" placeholder="New placeholder text" />
但只有當輸入字段爲空,而不是已經填寫
我在想,https://github.com/mathiasbynens/jquery-placeholder的代碼能幫助我嗎?因爲從我所看到的,該代碼包含一個函數來更改佔位符的值。