2013-07-21 2 views
2

Я хочу иметь заполнители для полей ввода текста и пароля. Я могу сделать это во всем, кроме Internet Explorer. Как это может быть сделано? Может быть, jquery? В частности, для паролей я хочу, чтобы заполнитель сказал «пароль». И как только щелкнут ввод, текст внутри него будет отображаться как текст пароля. Благодаря! :)Как установить заполнитель для Internet Explorer?

+0

возможно дубликат [ Входные заполнители для Internet Explorer] (http://stackoverflow.com/questions/5522164/input-placeholders-for-internet-explorer) –

+0

* пароль * не является полезным заполнителем, похоже, вы пытаетесь злоупотреблять им как замените '

ответ

1

IE9 +, предположительно, поддерживают заполнитель, но я считаю, что это не так. Есть несколько способов «притвориться», чтобы иметь местозаполнитель. Я считаю, что лучший способ иметь вид-заполнитель в IE заключается в создании функции jquery, которая добавляет div за поля ввода (с прозрачными полями ввода) с текстом, который вы хотите отобразить. Затем, когда ввод или данные присутствуют либо на дисплее A: нет div или opaque поле ввода.

Другие люди помещают текст во входные поля, но это может быть болью с проверкой и, как вы уже нашли, полями пароля.

что-то вроде:

// Check browser type so we don't mess with other browsers that do this right 
if (BrowserDetect.browser === 'Explorer') { 
    // Find all placeholders 
    $('[placeholder]').each(function(_index, _this) { 
     var $this = $(this); 
     var id = this.id; 
     var thisValue = $this.val(); 
     var value = $this.attr('placeholder'); 
     var $element = $('#' + id + '_ph'); 
     if ($element.length === 0) { 
      // Add placeholder if no input you want to add it even if value in case they remove value 
      $this.attr('placeholder', ''); 
      // Add the div (make sure you style ie_placeholder_fix 
      // class with correct positioning etc) 
      $('<div id="' + id + '_ph" class="ie_placeholder_fix">' + value + '</div>').insertAfter($this); 
     } 
     //Maybe you want to hide if it has a value? 
     if (thisValue) { $element.hide(); } else { $element.show(); } 
     $this.blur(checkForInput); 
    }); 
} 

Вам нужно только, чтобы проверить, если они имеют значение того, чтобы скрыть DIV, если значение заранее (т.е. редактируемый форма)