【问题标题】:Disabled input text type with javascript使用 javascript 禁用输入文本类型
【发布时间】:2013-05-28 12:42:52
【问题描述】:

我遇到了一个小问题,我正在尝试启用一个禁用的“输入文本类型”,其中包含一个文本。

function newForm(){
document.getElementsByName("name1").disabled = false;
document.getElementsByName("name1").value="TEST";
}

有了这个

<div id="passengers">
<div id="form">
    <table>
    <thead>
        <tr><th></th><th>Name</th><th>LastName</th><th>Date of Birth</th></tr>
    </thead>
    <tbody>
        <form id="formulaire" action="">
        <tr><th>Passenger #1</th><th><input type="text" name="name1" tabindex="1" disabled="true"/></th><th><input type="text" name="lastname1" tabindex="2" disabled="true"/></th><th><input type="text" name="date1" tabindex="3" disabled="true"/></th></tr>
    </table>
</div>
<input type="submit" value="New" onclick="newForm()"/><input type="submit" value="Send" disabled="true"/><input type="submit" value="Modify" disabled="true"/></form>
</div>

【问题讨论】:

  • getElementsByName 返回一组对象,而不是一个元素..
  • 对“新建”按钮使用input type="button",这样它就不会尝试提交表单。

标签: javascript html text input types


【解决方案1】:

首先,将按钮的输入类型从submit改为button:

<input type="button" value="New" onclick="newForm()"/>

因为您的功能与提交表单无关(submit 会导致不需要的行为)。

其次,getElementsByName 返回一组对象,不是一个元素。通过使用[0] 访问第一个元素来定位元素:

function newForm(){
  document.getElementsByName("name1")[0].disabled = false;
  document.getElementsByName("name1")[0].value="TEST";
}

Here's a working jsFiddle.

【讨论】:

    【解决方案2】:

    getElementsByName 返回一个元素集合试试这个

    document.getElementsByName('name1')[0].disabled = true;
    

    【讨论】:

    • 感谢您的回复,但它可以工作 1 秒,inputtexttype 的东西变成“启用”并且文本 TEST 出现但 1 秒后,它再次被禁用并且没有文本。
    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2016-03-03
    • 2013-09-19
    • 2011-08-24
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多