javascript 控制 text 的 readonly 属性

本文介绍了一种使用JavaScript来动态改变HTML中输入框的只读属性的方法,并演示了如何通过简单的按钮点击事件来切换输入框的状态。
<html> 
<head>
<title>Test</title>
</head>
<body>
<form action="" method="post" name="form1">
<input type="text" value="test" id="txtTest" readonly>
<input type="button" value="ChangeProperties" onClick="changeText();">
</form>
</body>
<script type="text/javascript">
<!--
function changeText(){
var t=document.getElementById("txtTest");
if(t.readOnly){ // 注意 readOnly 的 O为大写
t.readOnly=false;
t.value="write able";
}else{
t.readOnly=true;
t.value="readonly";
}
}
// -->
</script>
</html>

<!-- function changeText(){ var t=document.getElementById("txtTest"); if(t.readOnly){ // 注意 readOnly 的 O为大写 t.readOnly=false; t.value="write able"; }else{ t.readOnly=true; t.value="readonly"; } } // -->

JavaScript 中,`readonly` 是表单元素(如 `<input>`、`<textarea>` 等)的一个属性,用于设置元素为只读状态,用户无法对其进行编辑,但可以选中和复制其中的内容。 ### 使用方法 #### 1. 使用原生 JavaScript 控制单个元素的 `readonly` 属性 要使用原生 JavaScript 控制单个元素的 `readonly` 属性,可以通过 `document.getElementById` 方法获取元素,然后直接设置其 `readOnly` 属性(注意 `O` 为大写)。示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>Test</title> <script type="text/javascript"> function changeText() { var t = document.getElementById("txtTest"); if (t.readOnly) { t.readOnly = false; t.value = "write able"; } else { t.readOnly = true; t.value = "readonly"; } } </script> </head> <body> <form action="" method="post" name="form1"> <input type="text" value="test" id="txtTest" readonly> <input type="button" value="ChangeProperties" onClick="changeText();"> </form> </body> </html> ``` 在上述代码中,点击按钮时会调用 `changeText` 函数,该函数会根据 `txtTest` 元素当前的 `readOnly` 属性值进行切换,并修改其显示的文本内容 [^4]。 #### 2. 使用原生 JavaScript 控制多个元素的 `readonly` 属性 若要使用原生 JavaScript 控制多个元素的 `readonly` 属性,可以使用 `document.querySelectorAll` 方法选择多个元素,然后遍历这些元素并设置其 `readOnly` 属性。示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>Control Multiple Elements</title> <script> function setReadOnly() { var inputs = document.querySelectorAll("input[type='text']"); for (var i = 0; i < inputs.length; i++) { inputs[i].readOnly = true; } } </script> </head> <body> <input type="text" value="Input 1"> <input type="text" value="Input 2"> <input type="button" value="Set Readonly" onclick="setReadOnly()"> </body> </html> ``` #### 3. 使用 jQuery 控制元素的 `readonly` 属性 若要使用 jQuery 控制元素的 `readonly` 属性,可以使用 `prop` 方法来设置或获取元素的属性。示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>jQuery Readonly</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function () { $("button").click(function () { $("input[type='text']").prop("readonly", true); }); }); </script> </head> <body> <input type="text" value="Input with jQuery"> <button>Set Readonly</button> </body> </html> ``` 在上述代码中,点击按钮时会调用 jQuery 函数,将所有文本输入框设置为只读状态。 ### 作用 - **数据展示**:在表单中展示一些用户不能修改但需要查看的数据,如订单号、创建时间等信息。 - **防止误操作**:在某些情况下,不希望用户修改已有的数据,以避免数据错误或不一致。例如,在提交表单后显示表单内容时,将输入框设置为只读,防止用户再次修改。 ### 注意事项 - 在设置 `readonly` 属性时,需要注意属性名的大小写。在 JavaScript 中,应该使用 `readOnly`(`O` 为大写)。 - 使用 `document.formName.inputName.readonly` 这种方式设置 `readonly` 属性可能无效,建议使用 `document.getElementById` 或其他选择器来获取元素并设置属性 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值