0

我正在使用 mathiasbynens/jquery-placeholder 并且在所有版本的浏览器中一切正常,这对我来说最重要,因为我们的大多数客户都使用 IE7,8。

但像往常一样,Internet Explorer 中存在问题。我有一种输入类型,它是被屏蔽的电话号码,当我关闭该字段占位符的屏蔽时,它会出现在 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 中未显示“商务电话”的问题。希望这会有所帮助。

Placeholders.js 是 HTML5 占位符属性的 JavaScript polyfill。它是轻量级的,零依赖,几乎可以在任何你能想象到的浏览器中工作。

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 回答