Jsp 根据dropdownlist值阻止输入框

Jsp 根据dropdownlist值阻止输入框,jsp,Jsp,我有两个下拉列表,ID是cType和cId。另一个名为newName的输入框。 现在,当我在cType中选择EXTERNAL或在cId中选择others时,我想启用输入框。 这是我做的。但不起作用 function blockName(){ var dis1 = document.getElementsByname('cType').value; var dis2 = document.getElementById('cId').value; if (dis1 == 'EXTERNAL'|| d

我有两个下拉列表,ID是cType和cId。另一个名为newName的输入框。 现在,当我在cType中选择EXTERNAL或在cId中选择others时,我想启用输入框。 这是我做的。但不起作用

function blockName(){
var dis1 = document.getElementsByname('cType').value;
var dis2 = document.getElementById('cId').value;
if (dis1 == 'EXTERNAL'|| dis2== '3')
    newName.disabled = false;

else
    newName.disabled = true;

}
<tr>
<th colspan="1" align="right" > Type : </th>
<th colspan="1" align="left" style="width: 50px" >
<form:select path="" id="cType" onkeypress="blockName()">
<form:option value="X" label=" Select "/>
<form:option value="INTERNAL" label="student"/>
<form:option value="EXTERNAL" label="outsider"/>
</form:select>
</th>

<th align="left" >
<form:select name="cId" path="cId" id="cId" onkeypress="blockName()">
<form:option value="0" label="Select"/>
<form:option value="1" label="a"/>
<form:option value="2" label="b"/>
<form:option value="3" label="other"/>
</form:select>
</th>
下拉列表如下:

<tr>
<th colspan="1" align="right" > Type : </th>
<th colspan="1" align="left" style="width: 50px" >
<form:select path="" id="cType" onkeypress="blockName()">
<form:option value="X" label=" Select "/>
<form:option value="INTERNAL" label="student"/>
<form:option value="EXTERNAL" label="outsider"/>
</form:select>
</th>

<th align="left" >
<form:select name="cId" path="cId" id="cId" onkeypress="blockName()">
<form:option value="0" label="Select"/>
<form:option value="1" label="a"/>
<form:option value="2" label="b"/>
<form:option value="3" label="other"/>
</form:select>
</th>

类型:
输入框是

<tr>
<th colspan="1" align="right" > Type : </th>
<th colspan="1" align="left" style="width: 50px" >
<form:select path="" id="cType" onkeypress="blockName()">
<form:option value="X" label=" Select "/>
<form:option value="INTERNAL" label="student"/>
<form:option value="EXTERNAL" label="outsider"/>
</form:select>
</th>

<th align="left" >
<form:select name="cId" path="cId" id="cId" onkeypress="blockName()">
<form:option value="0" label="Select"/>
<form:option value="1" label="a"/>
<form:option value="2" label="b"/>
<form:option value="3" label="other"/>
</form:select>
</th>
<th colspan="1" align="left">                       
<form:input class="iptext" id="newName" path="" name="newName" value="" placeholder="Name" disabled="true"></form:input>
</th>

您需要进行以下更改: 在javascript中,需要调用getElementById而不是getElementsByName。此外,getElementById还可以禁用/启用newName:

<tr>
<th colspan="1" align="right" > Type : </th>
<th colspan="1" align="left" style="width: 50px" >
<form:select path="" id="cType" onkeypress="blockName()">
<form:option value="X" label=" Select "/>
<form:option value="INTERNAL" label="student"/>
<form:option value="EXTERNAL" label="outsider"/>
</form:select>
</th>

<th align="left" >
<form:select name="cId" path="cId" id="cId" onkeypress="blockName()">
<form:option value="0" label="Select"/>
<form:option value="1" label="a"/>
<form:option value="2" label="b"/>
<form:option value="3" label="other"/>
</form:select>
</th>
    function blockName(){
        var dis1 = document.getElementById('cType').value;
        var dis2 = document.getElementById('cId').value;
        if (dis1 == 'EXTERNAL'|| dis2== '3'){
            document.getElementById('newName').disabled = false;
        }else{
            document.getElementById('newName').disabled = true;
        }
    }
当您使用spring表单标记时,您不必使用name属性,因为path属性会处理它。要在下拉更改时调用此enable disbale javascript函数,需要调用onchange而不是onkeypress函数,如下所示:

<tr>
<th colspan="1" align="right" > Type : </th>
<th colspan="1" align="left" style="width: 50px" >
<form:select path="" id="cType" onkeypress="blockName()">
<form:option value="X" label=" Select "/>
<form:option value="INTERNAL" label="student"/>
<form:option value="EXTERNAL" label="outsider"/>
</form:select>
</th>

<th align="left" >
<form:select name="cId" path="cId" id="cId" onkeypress="blockName()">
<form:option value="0" label="Select"/>
<form:option value="1" label="a"/>
<form:option value="2" label="b"/>
<form:option value="3" label="other"/>
</form:select>
</th>
    <form:select path="cType" id="cType" onchange="blockName()">
    <form:option value="X" label=" Select "/>
    <form:option value="INTERNAL" label="student"/>
    <form:option value="EXTERNAL" label="outsider"/>
    </form:select>

    <form:select path="cId" id="cId" onchange="blockName()">
    <form:option value="0" label="Select"/>
    <form:option value="1" label="a"/>
    <form:option value="2" label="b"/>
    <form:option value="3" label="other"/>
    </form:select>

    <form:input class="iptext" id="newName" path="newName" placeholder="Name" disabled="true"></form:input>

您需要在select标记中指定onchange(),新名称定义为rght?我已经放置了onchange(),但不起作用。对不起,我不明白在哪里定义newName@BharathRallapalliyou需要使用document.getElementById(“newName”)禁用它。disabled=true;