如何使用这个简单的jQuery禁用HTML文本字段?

csga3l58  于 2023-10-17  发布在  jQuery
关注(0)|答案(6)|浏览(122)

我有这个简单的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有多强大)

bxgwgixi

bxgwgixi1#

从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"]')选择所有类型文本的元素。

f3temu5u

f3temu5u2#

试试这个:

<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>
qjp7pelc

qjp7pelc3#

或者(更现代):

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

o2g1uqev4#

jquery中没有text选择器。您需要使用属性选择器[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" />

ufj5ltwl

ufj5ltwl5#

$(“input”).attr(“禁用”,“禁用”);

nmpmafwu

nmpmafwu6#

“disabled”是一个属性,而不是属性本身。像“checked”或“disabled”这样的布尔值在以这种方式访问它们时并不总是正确地更新(或检索)。使用

$(':text').prop('disabled',true);

而不是.

相关问题