javascript - 根据从 <select> 元素中选择的选项禁用不同的输入

标签 javascript jquery html forms

我正在创建一个联系我们表单,该表单应包含多个文本输入、一个文本区域和一个提交按钮。此表单上方应该是一个包含三个选项的下拉选择,在本例中我使用了“选择一个选项”、“选项 1”和“选项 2”。

我正在尝试获取它,以便禁用表单上的所有元素,除非选择“选项 1”。因此,如果选择其他两个中的任何一个,则用户不应访问该表单。

目前,我已经设法弄清楚如何禁用一个输入,但另一个输入似乎无法以相同的方式工作。这背后的原因是什么?另外我怎样才能让它禁用其他元素?

function checkOption(obj) {
    var input = document.getElementById("input");
    input.disabled = obj.value == "A";
}
<p>Contact Us Form </P>

<select id="menu" onChange="checkOption(this)">
    <option value="A">Select An Option</option>
    <option value="B">Option 1</option>
    <option value="A">Option 2</option>
</select>

<br>
<p> First Name </p>
<input type="text" id="input" disabled>

<p> Second Name </p>
<input type="text" id="input" disabled>

<p>Enquiry</p>
<textarea rows="4" cols"50" id="textarea">
Lorem ipsum dolor sit amet, an modo mucius eum,
sanctus concludaturque qui no. Stet esse intellegat no eam,
nonumes eligendi disputationi ad usu.
</textarea>

<br>
<input type="submit" value="Submit">

最佳答案

试试这个:首先不要对多个输入(元素)使用相同的 id,使用类或名称属性而不是 id。 按名称获取所有元素,然后禁用-

function checkOption(obj) {
    var input = document.getElementsByName("input");
    for(var i=0; i < input.length; i++) {
     input[i].disabled = !(obj.value == "B")
    }
}
<p>Contact Us Form </P>

<select id="menu" onChange="checkOption(this)">
    <option value="A">Select An Option</option>
    <option value="B">Option 1</option>
    <option value="A">Option 2</option>
</select>

<br>
<p> First Name </p>
<input type="text" name="input" disabled>

<p> Second Name </p>
<input type="text" name="input" disabled>

<p>Enquiry</p>
<textarea rows="4" cols"50" id="textarea" name="input" disabled>
Lorem ipsum dolor sit amet, an modo mucius eum,
sanctus concludaturque qui no. Stet esse intellegat no eam,
nonumes eligendi disputationi ad usu.
</textarea>

<br>
<input type="submit" value="Submit" name="input" disabled>

关于javascript - 根据从 <select> 元素中选择的选项禁用不同的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034981/

相关文章:

javascript - 如何使用 querySelector 找到正确的元素

jquery - 使用 JQuery .hide() 函数进行 URL 查询不起作用。为什么?

javascript - 为什么 JQuery 代码无法在服务器上运行?

html - Firefox html 有序列表编号被子列表弄乱了

html - 垂直对齐图像旁边的文本,CSS 不起作用

jquery 下拉选择值

javascript - Vue.js:使用作用域 CSS 设置 div 位置和大小

javascript - 使 child 的高度大于 parent

javascript - babelify 转换不转译胖箭头

jquery - 单击时使 SVG 可调整大小