0

私は mathiasbynens/jquery-placeholder を使用していますが、ほとんどのクライアントが IE7,8 を使用しているため、私にとって最も重要なブラウザのすべてのバージョンですべてがうまく機能します。

しかし、いつものように Internet Explorer には問題があります。私は正確に1つの入力タイプを持っています。それはマスクされている電話番号であり、そのフィールドプレースホルダーのマスキングをオフにすると、IEに表示されます。それ以外の場合は表示されません。マスクを持つ要素で動作するように修正するにはどうすればよいですか。

コードは次のとおりです。

 <input type="text" name="phone_number" id="phone_number_btd"  value="<?php echo $phone_number; ?>" placeholder="Phone Number"/>


$("#phone_number_btd").mask("(999) 999-9999? x9999");

以下は、プレースホルダー機能を呼び出すコードです。

     (jQuery)('[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();

4

1 に答える 1

0

次のスクリプトは、MSIE 9 から 11 に「Business Phone」が表示されないという問題を完全に解決しました。これがお役に立てば幸いです。

Placeholders.js は、HTML5 プレースホルダー属性の JavaScript ポリフィルです。軽量で、依存関係がなく、想像できるほぼすべてのブラウザーで動作します。

https://jamesallardice.github.io/Placeholders.js/

    <script src="CHANGE-TO-PATH-AFTER-DOWNLOADED/placeholders.min.js"></script>

    <section>
    <label class="">
    <input type="tel" name="phone" id="phone" placeholder="Business Phone">
    </label>
    </section>


    <script type="text/javascript">
     $(function()
     {
      // Masking
         $("#phone").mask('(999) 999-9999', {placeholder:'X'});
      // $("#date").mask('99/99/9999', {placeholder:'X'});
      // $("#card").mask('9999-9999-9999-9999', {placeholder:'X'});
      // $("#serial").mask('***-***-***-***-***-***', {placeholder:'_'});
      // $("#tax").mask('99-9999999', {placeholder:'X'});
     });            
    </script>
于 2014-04-20T15:24:06.720 に答える