2013-06-03 54 views
0

我使用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的代碼能幫助我嗎?因爲從我所看到的,該代碼包含一個函數來更改佔位符的值。

回答

0

問題解決,愚蠢的錯誤,在IE開發人員工具中,我沒有看控制檯。在那裏我看到一個變量未被正確定義... 史詩facepalm

爲了更精確: 我的擴展功能的jQuery改變佔位符文本有一行:

$(this).addClass(placeHolderStylingClass); 

但變量placeHolderStylingClass沒有在功能設置,這是一個愚蠢的複製/從我的setPlaceholder函數中粘貼錯誤。