2013-05-22 2 views
0

У меня есть форма входа в систему с полями имени пользователя и пароля. Я использую placeholder для отображения текста справки для каждого ввода. Он отлично работает в Firefox и Chrome, но не в IE, поскольку placeholder - это свойство ввода HTML5. Я пишу пользовательскую функцию для работы с заполнителем в IE. В этой конкретной функции я хочу изменить тип ввода поля пароля с «password» на «text» в jQuery.Как изменить свойство входного типа в jQuery?

Пожалуйста, предложите решение для этого.

+0

Вы знаете, что неподдерживаемые браузеры автоматически Откат к типу текста? – adeneo

+0

Возможный дубликат [JQuery изменить тип поля ввода] (http://stackoverflow.com/questions/1544317/jquery-change-type-of-input-field) – Mathletics

+0

Просто используйте плагин js placeholder, подобный этому: https: //github.com/mathiasbynens/jquery-placeholder – adamdehaven

ответ

4
$('input:password').prop('type','text'); 

Demo -->http://jsfiddle.net/47hem/

+1

+1, кажется, идеальное использование prop(). – adeneo

+0

Спасибо человеку :). Он работает превосходно !!! – deepakb

+0

@DeepakBiswal Добро пожаловать! –

0
$("#id").attr("type", "text"); 

EDIT:

$("#id").remove(); 
$("#containerOfInput").append("<input type="text" ........"); 

И вы не должны использовать Append. Вы можете использовать .html("newHTML"), если у вас есть контейнер, который держит только это поле ввода.

+0

Я пробовал это, он не работает. Он выдает ошибку, которая «не может изменить тип свойства». Я думаю, что это связано с некоторыми проблемами безопасности браузера. – deepakb

+0

Вполне возможно! Я никогда не пробовал. Возможно, вам удастся удалить оригинал, а затем добавить. Позвольте мне изменить. – thatidiotguy

+0

У меня это работает. Вот решение, предложенное выше. $ ('input: password'). Prop ('type', 'text'); – deepakb

0

Нечто подобное ниже, должны сделать трюк,

DEMO:http://jsfiddle.net/7t6hk/

$('#password').focus(function() { 
     this.type = 'password' 
     $(this).removeClass('placeholder').val(function() { 
      var val = $.trim(this.value); 
      return (val == 'Password')?'':this.value; 
     }); 
    }).blur (function() { 
     $(this).val(function() { 
      var val = $.trim(this.value); 
      return (val == '')?'Password':this.value; 
     }); 

     if (this.value == 'Password') { 
      $(this).addClass('placeholder') 
      this.type = 'text'; 
     } 
    }); 

Только что заметил, что вы хотите, чтобы часть меняла тип. Вы можете сделать это, установив this.type.

  • Набор this.type = 'text' для TextField
  • Набор this.type = 'password' для поля ввода пароля
Смежные вопросы