it-swarm.com.ru

Как я могу отключить текстовое поле HTML, используя этот простой jQuery?

У меня есть этот простой код JQuery для тестирования.

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
      $("button").click(function(){
          $("text").attr("disabled","");
      });
    });
</script>
</head>
<body>
<input type="text">
<br />
<button>Set the textfield disabled</button>
</body>
</html>

В основном HTML-страница поставляется с простой кнопкой и текстовым полем. Все, что я хочу, чтобы отключить поле ввода, когда я нажимаю кнопку. Но это не работает ???

(PS: этот код взят с сайта w3schools.com, просто для того, чтобы просто проверить, насколько мощным является jQuery)

9
awongCM

В jQuery 1.7 вы можете использовать .prop:

$(document).ready(function(){
  $("button").click(function(){
      $(":text").prop("disabled", true);
  });
});

До 1.7 вы могли сделать:

$(document).ready(function(){
  $("button").click(function(){
      $(":text").attr("disabled", true);
  });
});

PS: используйте $(":text") или $('input[type="text"]'), чтобы выбрать все элементы типа text.

12
xdazz

Попробуй это:

    <html>   
<head>   
<script type="text/javascript" src="jquery.js"></script>   
<script type="text/javascript">   
$(document).ready(function(){     
$("button").click(function(){         
$("#text").attr("disabled","true");     
});   
});   
</script>   
</head>   
<body>  
 <input id="text" type="text">
<br />
<button>Set the textfield disabled</button>
</body>
</html>
2
Tapas Mahata

В text нет селектора jquery. Вам нужно использовать селектор атрибута [attribute=value]

$('input[type=text]').prop('disabled', true); // prop Works on jquery 1.7+

или же:

$('input[type=text]').attr('disabled', 'disabled'); // Works in each version. 
                                                    // But isn't W3C standard.

есть селектор :text, но он менее эффективен, чем первый, см. docs :

$ (': text') эквивалентно $ ('[type = text]') и, таким образом, выбирает все элементы. Как и в случае других селекторов псевдоклассов (те, которые начинаются с ":"), рекомендуется предшествовать ему с именем тега или каким-либо другим селектором; в противном случае подразумевается универсальный селектор (""). Другими словами, пустой $ (': text') эквивалентен $ (': text'), поэтому вместо него следует использовать $ ('input: text').

Дополнительные примечания: Поскольку : text является расширением jQuery и не является частью спецификации CSS, запросы с использованием: text не могут воспользоваться преимуществами повышения производительности, обеспечиваемыми собственный метод DOM querySelectorAll (). Для повышения производительности в современных браузерах используйте вместо этого [type = "text"] .

Обратите внимание, что ваш XHTML недействителен. Вы должны закрыть <input type="text"> => <input type="text" />

1
gdoron

Или (более современный):

$("input[type=text]").prop('disabled', true);
1
devnull69

$ ( "Вход") атр ( "отключено", "отключено").

0
gabitzish