繁体   English   中英

启用 JavaScript 时禁用属性的切换值

[英]toggle value of disabled attribute when JavaScript enabled

我的网站上有一个输入标签,它使用 javascript 进行自动完成...当我的用户没有在他们的系统上启用 javascript 时,我希望<input>标签的禁用属性为真。 但是当 Javascript 启用时,我想要disabled=false的值。 我该怎么做呢?

到目前为止我所做的:

<input name="xyz" class="xyzautocomplete" type="text" id="name" value="enter name" disabled="true">

将使用

document.getElementById("name").disabled = false;

在与script=""相同的<input>标记内适用于这两种情况?

IE,

 <input name="xyz" script="document.getElementById("name").disabled = false;" class="xyzautocomplete" type="text" id="0" value="enter name" disabled="True">

如果不是,我该怎么做?

如果 javascript 被禁用,则 javascript 语法将不起作用。

你必须用Tag来做

请尝试以下解决方案 -

<script>
     <!--
        document.write('<input name="xyz" class="xyzautocomplete" type="text" id="0" value="enter name" >')
     -->
  </script>

  <noscript>
    <input name="xyz" class="xyzautocomplete" type="text" id="0" value="enter name" disabled >
  </noscript>

关于内联 JavaScript,其他答案是正确的。 没有script属性,并且没有为输入定义onload ,因此您的脚本需要位于输入之后的<script>元素中。

但是,现有答案都没有提到disabled是一个boolean属性,也就是说,它的存在与否决定了输入是否被禁用。 它的价值无关紧要。

因此将属性设置为 JavaScript 中的值不起作用。 该属性仍然存在,只是具有不同的值!
您需要做的是完全删除该属性。

 document.getElementById("name").removeAttribute('disabled');
 <input name="xyz" class="xyzautocomplete" type="text" id="name" value="enter name" disabled="true">

将 JS 内联从来都不是好方法。 将其放在 html 元素之后。 此外,您的目标 xyz 的 id 不存在。 你的id是0。

 document.getElementById("0").disabled = false;
 <input name="xyz" class="xyzautocomplete" disabled type="text" id="0" value="enter name">
如您所见,输入被禁用,但 JS 使其启用。 没有 JS 的人将无法使用输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM