2013-07-17 68 views
2

我是salesforce(SFDC)開發人員。 在我的輸入框的visualforce頁面中,我使用佔位符代碼。佔位符未在IE9中工作

<div class="control-group"> 
    <label class="control-label visible-desktop" for="first_name">First Name</label> 
    <div class="controls"> 
     <input class="input-block-level" name="First Name" id="first_name" placeholder="First Name" value="" type="text" required="required" autofocus="autofocus" /> 
    </div> 
</div> 

我在互聯網上檢查了一些CSS黑客,但我沒有找到任何。 我發現一些JavaScript黑客。

HTML5佔位符jQuery插件

https://github.com/mathiasbynens/jquery-placeholder

演示&例子

http://mathiasbynens.be/demo/placeholder

但我不想使用jQuery砍什麼的。

+1

IE9不支持佔位符屬性。查看您在IE9中提供的演示頁面。有消息稱瀏覽器本身支持它。 – Brainfeeder

+0

您將不得不使用jQuery,因爲舊版瀏覽器不支持它。 – Thew

+0

顯然,我的IE9的一些平板事件,導致它只是工作。無論如何[這個答案](http://stackoverflow.com/a/9109448/1397220)是一個非jQuery的解決方案.. – Brainfeeder

回答

2

由於IE9不支持佔位符屬性,你可以做到這一點的Javascript/jQuery的,像這樣(迅速寫的,未測試):

if(navigator.appVersion.match(/MSIE [\d.]+/)){ 
    var placeholderText = 'Some Placeholder Text'; 
    $('#first_name').val(placeholderText); 
    $('#first_name').blur(function(){ 
     $(this).val() == '' ? $(this).val(placeholderText) : false; 
    }); 
    $('#first_name').focus(function(){ 
     $(this).val() == placeholderText ? $(this).val('') : false; 
    }); 
} 

執行相同的模糊事件太多,那將模仿佔位符屬性。

[編輯]

好了,這再思考(由於評論)後,這是真的不是最優雅的解決方案(但它的工作),所以我會完全無視這個答案。

+0

儘管考慮它,這將匹配任何IE版本,所以你可能想要改變if條件以匹配[\ d。] {1}或其他東西(我的正則表達式不是很好) – DarkMantis

+0

返回一個字符串從' .focus'什麼都不做。你想做什麼? –

+0

好吧我已經更新了我的答案,我認爲這應該工作:) – DarkMantis

0
if(navigator.appVersion.match(/MSIE [\d.]+/)){ 
    $(document).find("input[placeholder]").each(function(){ 
     if($.trim($(this).val()) == ""){ 
      $(this).val($(this).attr("placeholder")).addClass('placeholder'); 
     } 
     $(this).on("focus",function(){ 
      $(this).hasClass('placeholder') ? $(this).val('').removeClass('placeholder') : false; 
     }).on("blur",function(){ 
      $(this).val() == '' ? $(this).val($(this).attr("placeholder")).addClass('placeholder') :false;   
     }); 
    });  
} 
0

稍微簡單的回答爲我工作不是非常信任正則表達式(我的垮臺)

function setPlaceHolderForIE9() { 
    var pos = window.navigator.userAgent.indexOf("MSIE"); 

    if (pos > 0) { 
     if (window.navigator.userAgent.substring(pos + 5, window.navigator.userAgent.indexOf(".", pos)) < 10) { 
      //alert($("input[placeholder]").val($("input[placeholder]").attr("placeholder"))); 
      $("input[placeholder]").each(function() { 
       $(this).val($(this).attr("placeholder")); 
      }); 

      $("input[placeholder]").click(function() { 
       if ($(this).val() === $(this).attr("placeholder")) { 
        $(this).val(''); 
       } 
      }); 

      $('input[placeholder]').blur(function() { 

       if ($.trim($(this).val()).length === 0) { 
        $(this).val($(this).attr("placeholder")); 
       } 
      }); 


     } 
    } 
}