我有一个带有下拉菜单的表单,后跟一个文本输入字段。默认情况下禁用输入框。从菜单中选择指定选项(" OTHER")应启用文本字段。
注意:如果用户点击图标(+),则可以添加多行。当某行选择" OTHER"时,其他行不会受到影响。只有具有选项" OTHER"的行。将启用。
<tr id="dataRow">
<td>+</td>
<td>-</td>
<td>
<select onChange="checkOption(this);">
<option value="A">Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="OTHER">Other</option>
</select>
</td>
<td><input id="inputTextBox"></td>
</tr>
JAVASCRIPT:
function checkOption(obj) {
var input = document.getElementById("inputTextBox");
input.disabled = obj.value != "OTHER";
}
样品:
First Row: Selects OTHER (inputTextBox is enabled)
User add another Row: Selects Option A (inputTextBox is disabled)
User add another Row: Selects OTHER (inputTextBox is enabled)
生成多行时,HTML就是这样的。共享相同的ID,选项..
<tr id="dataRow">
<td>+</td>
<td>-</td>
<td>
<select onChange="checkOption(this);">
<option value="A">Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="OTHER">Other</option>
</select>
</td>
<td><input id="inputTextBox"></td>
</tr>
<tr id="dataRow">
<td>+</td>
<td>-</td>
<td>
<select onChange="checkOption(this);">
<option value="A">Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="OTHER">Other</option>
</select>
</td>
<td><input id="inputTextBox"></td>
</tr>
<tr id="dataRow">
<td>+</td>
<td>-</td>
<td>
<select onChange="checkOption(this);">
<option value="A">Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="OTHER">Other</option>
</select>
</td>
<td><input id="inputTextBox"></td>
</tr>
答案 0 :(得分:1)
如果要检查所选值并在客户端选择other
时禁用输入,这将起作用。
function checkOption(obj) {
var input = document.getElementById("inputTextBox");
if(obj.value=='OTHER'){
input.disabled=true;
}else{
input.disabled=false;
}
}
<select onChange="checkOption(this);">
<option value="A">Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="OTHER">Other</option>
</select>
<br>
<input id="inputTextBox">
或强>
创建一个具有other值的新选项,并显示在select的顶部。您可以选择一个ID并调用此函数,它将在添加动态选项后检查所选选项。
function checkOption() {
var input = document.getElementById("inputTextBox");
var Index = document.getElementById("Options").selectedIndex;
if(document.getElementById("Options")[Index].value=='OTHER'){
input.disabled=true;
}else{
input.disabled=false;
}
}
<select id="Options" onChange="checkOption();">
使用selectedIndex
document.getElementById(“Options”)[0] =&gt; A - 选项A
document.getElementById(“Options”)[1] =&gt; B - 选项B
document.getElementById(“Options”)[2] =&gt; C - 选项C
document.getElementById(“Options”)[3] =&gt;其他 - 其他
如果您有任何疑问,请在下方发表评论,我会尽快回复您。
我希望这会有所帮助。快乐的编码!
答案 1 :(得分:0)
答案 2 :(得分:0)
我不确定我是否理解你想要实现的目标,但是如果它只是启用/禁用checkOption函数中的这样的文本字段应该可以完成这项工作:
function checkOption(obj) {
if (obj.value == "OTHER"){
if( document.getElementById("inputTextBox") != null)
{
document.getElementById("inputTextBox").disabled = false;
}
}
if (obj.value != "OTHER")
{
if( document.getElementById("inputTextBox") != null)
{
document.getElementById("inputTextBox").disabled = true;
}
}