-1

現在、私のプロジェクトには、次のようにプレースホルダーを使用する入力タグがたくさんあります。

<input id="Name" name="Name" placeholder="Name Goes Here" type="text" value="">

ブラウザーが IE の場合に入力タグを変更するグローバル js スクリプトに配置できる js 関数はありますか?

たとえば、ブラウザーが Internet Explorer の場合、すべてのプレースホルダーを IE が使用するものに変更する特定の JavaScript 関数を実行できます (存在する場合)。

4

3 に答える 3

2
// Detect the browser, as you want. I'm using the follwowing way
var browserName=navigator.appName; 
if (browserName=="Microsoft Internet Explorer") 
{ 
    replacePlHolders();
}


// replace all the placeholders with a simple text input
function replacePlHolders()
{
   var plInps = $("input[placeholder]");

   plInps.each(function(){
        var name=$(this).attr("name");
        var newInput = $("<input type='text' name='"+name+"' value='"+name+" goes here'>");

         $(this).replaceWith(newInput);
         var defaultValue = name + " goes here";

         newInput.on('focus', function() {                 

                    // If this value of the input equals our sample,
                    // hide it when the user clicks on it.

                    if(this.value === defaultValue)
                       this.value = '';
              });

              newInput.on('blur', function() {
                    // When they click off of the input, if
                    // the value is blank, bring back the sample.
                    if(this.value === '')
                         this.value = defaultValue;
               });
   });
}

このコードをグローバル Javascript ファイルに配置すると、魔法のように機能します。

ここでフィドルを確認してください

于 2013-07-27T07:29:04.110 に答える
1

jquery-html5-placeholder-shim をチェックしてください

于 2013-07-26T22:17:19.813 に答える
0
if(!Modernizr.input.placeholder){
    $('[placeholder]').focus(function(){
        var input = $(this);
        if(input.val() == input.attr('placeholder')){
            input.val('');
            input.removeClass('placeholder');
        }
    }).blur(function(){
        var input = $(this);
        if(input.val() == '' || input.val() == input.attr('placeholder')){
            input.addClass('placeholder');
            input.val(input.attr('placeholder'));
        }
    }).blur();
    $('[placeholder]').parents('form').submit(function(){
        $(this).find('[placeholder]').each(function(){
            var input = $(this);
            if(input.val() == input.attr('placeholder')){
                input.val('');
            }
        });
    });
}
于 2013-07-27T06:16:15.177 に答える