51

我知道您可以添加readonly="readonly"到输入字段,使其不可编辑。但我需要使用 javascript 来定位输入的 id 并将其设为只读,因为我无法访问表单代码(它是通过营销软件生成的)

我不想禁用输入,因为应该在提交时收集数据。

这是我在以下建议中添加的页面,到目前为止没有运气:

https://www.pages05.net/engagedigital/inputReadOnly/test?spMailingID=6608614&spUserID=MTI5MDk4NjkzMTMS1&spJobID=Nzk4MTY3MDMS1&spReportId=Nzk4MTY3MDMS1

确保您<body onload="onLoadBody();">为将来使用它的任何人使用。

4

7 回答 7

91

您可以获取输入元素,然后将其readOnly属性设置true为如下:

document.getElementById('InputFieldID').readOnly = true;

具体来说,这就是你想要的:

<script type="text/javascript">
  function onLoadBody() {
    document.getElementById('control_EMAIL').readOnly = true;
  } 
</script>

onLoadBody()在 body 标签上调用此函数,例如:

<body onload="onLoadBody">

查看演示:jsfiddle

于 2013-07-24T05:22:05.467 回答
33

以上答案对我不起作用。以下是: document.getElementById("input_field_id").setAttribute("readonly", true);

并删除只读属性: document.getElementById("input_field_id").removeAttribute("readonly");

而对于页面加载时的运行,这里值得参考。

于 2016-07-06T18:39:22.640 回答
7
document.getElementById('TextBoxID').readOnly = true;    //to enable readonly


document.getElementById('TextBoxID').readOnly = false;   //to  disable readonly
于 2013-07-24T05:12:36.607 回答
4
document.getElementById("").readOnly = true
于 2013-07-24T05:04:09.770 回答
4

尝试这个 :

document.getElementById(<element_ID>).readOnly=true;
于 2013-07-24T05:05:59.340 回答
-4

在这里,您有如何设置只读属性的示例:

<form action="demo_form.asp">
  Country: <input type="text" name="country" value="Norway" readonly><br>
  <input type="submit" value="Submit">
</form>

于 2014-11-12T16:32:25.103 回答
-4

我想你只有 readonly="readonly"

<html><body><form><input type="password" placeholder="password" valid="123" readonly=" readonly"></input>

于 2019-04-13T11:51:34.223 回答