Проблема с заполнителями в браузерах IE (8-9)

0

Я работаю над проверкой формы (ввода поля).

Проблема. IE-браузеры (8-9) рассматривают текст заполнитель как значение, и во время проверки он принимает одно и то же значение, однако его следует рассматривать как пустое значение. Я не хочу использовать какой-либо скрипт и добиваться его, я придумал функцию ниже. Может ли кто-нибудь улучшить юзабилити/область действия немного больше. В настоящее время он вводит пустое поле ввода каждый раз, когда пользователь вводит значение. Тем не менее, я хочу, чтобы он был проверен в первый раз, когда текст по умолчанию для заполнителя вводится в действие. Любое предложение?

HTML

<input type="text" name="memberid" id="memberid" placeholder="Some Value" />
<a href="#" class="alpha-btn" id="search-btn">Search</a> 

JQuery

$('#search-btn').on('click', function(){
    if($.browser.msie){
        $('input').each(function() {
            var theAttribute = $(this).attr('placeholder');
            if (theAttribute) {
                $(this).val('');
                alert('Please enter value - IE');
            }
        });
    }
});
  • 0
    Чувак, я не хочу использовать какой-либо сценарий для этого. Если у вас есть какое-либо решение, кроме формы .. пожалуйста
  • 0
    Чувак, вы уже используете скрипт для него. Код, который вы разместили, является скриптом . Сторонние, на которые я ссылаюсь, делают то же самое, что и ваш код, но без ошибок.
Показать ещё 1 комментарий
Теги:
internet-explorer
placeholder

2 ответа

1

placeholder создает проблему в < IE 9 поэтому вы можете использовать данные() как

HTML

<input type="text" name="memberid" id="memberid" data-placeholder="Some Value" placeholder="Some Value"/>

SCRIPT

$('#search-btn').on('click', function(){
    if($.browser.msie){
        $('input').each(function() {
            var theAttribute = $(this).data('placeholder');
            if (theAttribute == this.value) {// check placeholder and value
                $(this).val('');
                alert('Please enter value - IE');
            }
        });
    }
});
  • 0
    # Рошан спасибо. это работает нормально. проблема, когда пользователь введет текст заполнителя по умолчанию в качестве значения (то есть «Некоторое значение») в этом случае, это не удается .. какое-либо решение?
  • 0
    # Ошибка в этом случае не fails и она valid too
0

Я думаю, что лучший способ добиться того, что вы хотите сделать, - это создать полное решение для заполнителей в IE8 и IE9. Для этого я предлагаю использовать Modernizr с обнаружением функции ввода-записи. Таким образом, вы можете использовать такую функцию:

window.ie8ie9placeholders = function() {
  if (!Modernizr.input.placeholder) {
    return $("input").each(function(index, element) {
      if ($(element).val() === "" && $(element).attr("placeholder") !== "") {
        $(element).val($(element).attr("placeholder"));
        $(element).focus(function() {
          if ($(element).val() === $(element).attr("placeholder")) {
            return $(element).val("");
          }
        });
        return $(element).blur(function() {
          if ($(element).val() === "") {
            return $(element).val($(element).attr("placeholder"));
          }
        });
      }
    });
  }
};

Это позволит заполнить поля для IE8 и IE9. Все, что вам нужно сделать, это использовать его при инициализации кода.

ie8ie9placeholders();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню