2014-10-10 168 views
0

如何修改代码,以便当我从第一个下拉菜单中选择一个选项时,第二个下拉菜单变为可编辑,否则第二个下拉菜单应该是只读的,如果选项在第一个下拉菜单中是“默认”,那么第二个下拉菜单应该是只读的。Javascript代码不起作用

<!DOCTYPE html> 
<html> 

<head> 
<script type="text/javascript"> 
function mySecondFunction() { 
    document.getElementById("mySelection").disabled = false; 
} 

</script> 

</head> 
<body> 

<form action=""> 
<select name="cars" onload="mySecondFunction()"> 
<option value="default">default</option> 
<option value="saab">Saab</option> 
<option value="fiat">Fiat</option> 
<option value="audi">Audi</option> 
</select> 
<br> 
<select disabled name="cars" id="mySelection"> 
<option value="Action1">Volvo</option> 
<option value="Action2">Saab</option> 
<option value="Action3">Fiat</option> 
<option value="Action4">Audi</option> 
</select> 
</form> 

</body> 
</html> 

回答

1

看看首都:

document.getElementById("MySelection").disabled = false; 
<select disabled name="cars" id="mySelection"> 

首先是与 “M”,并与

+0

仍然没有工作 – user3916285 2014-10-10 10:10:41

+0

http://jsfiddle.net/se22kfsr/ – 2014-10-10 10:12:02

+0

看不工作 - 第二个下拉菜单应成为可编辑的您已选择在首次下降的一个选项后,下拉菜单 – user3916285 2014-10-10 10:13:37

1

您有mySelection

拼错MySelection在JS “m” 的seccond你有document.getElementById("MySelection") // notice the uppercase M

并在HTML你hav e id="mySelection"

另外当窗口加载时将第二个选择设置为false,并将第一个onChange事件添加到第一个选择,将第二个事件设置为启用/ true ...这是你想要的吗?

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 

window.onload = function(){ 
    document.getElementById("mySelection").disabled = true; 
}; 

function mySecondFunction() { 
    document.getElementById("mySelection").disabled = false; 
} 

</script> 

</head> 
<body> 

<form action=""> 
<select name="cars" onchange="mySecondFunction()"> 
<option value="default">default</option> 
<option value="saab">Saab</option> 
<option value="fiat">Fiat</option> 
<option value="audi">Audi</option> 
</select> 
<br> 
<select name="cars" id="mySelection"> 
<option value="Action1">Volvo</option> 
<option value="Action2">Saab</option> 
<option value="Action3">Fiat</option> 
<option value="Action4">Audi</option> 
</select> 
</form> 

</body> 
</html> 

您可能需要设置第二选择回禁用如果用户选择“默认”第一菜单变化值

+0

仍然不起作用 – user3916285 2014-10-10 10:10:00

0

JavaScript的选择后是区分大小写的。你的错误在mySelection id:

document.getElementById("MySelection").disabled = false; 
<select disabled name="cars" id="mySelection"> 
0

你必须在body标签中使用它。 fiddle

<head> 


</head> 
<body onload="mySecondFunction()"> 

<form action=""> 
<select name="cars" > 
<option value="default">default</option> 
<option value="saab">Saab</option> 
<option value="fiat">Fiat</option> 
<option value="audi">Audi</option> 
</select> 
<br> 
<select disabled name="cars" id="mySelection"> 
<option value="Action1">Volvo</option> 
<option value="Action2">Saab</option> 
<option value="Action3">Fiat</option> 
<option value="Action4">Audi</option> 
</select> 
</form> 

</body> 
<script type="text/javascript"> 

function mySecondFunction() { 
alert("aaa"); 
    document.getElementById("mySelection").disabled = false; 
} 

</script> 
</html> 
0

正如有人指出你拼写错误的第二<select>的ID,但也使用了错误的事件,onchange是你想要的,而不是什么onload

function mySecondFunction() { 
 
    document.getElementById('mySelection').disabled = false;  
 
}
<form action=""> 
 
    <select name="cars" onchange="mySecondFunction();"> 
 
     <option value="default">default</option> 
 
     <option value="saab">Saab</option> 
 
     <option value="fiat">Fiat</option> 
 
     <option value="audi">Audi</option> 
 
    </select> 
 
    
 
    <br /> 
 
     
 
    <select disabled="disabled" name="cars" id="mySelection"> 
 
     <option value="Action1">Volvo</option> 
 
     <option value="Action2">Saab</option> 
 
     <option value="Action3">Fiat</option> 
 
     <option value="Action4">Audi</option> 
 
    </select> 
 
</form>

但考虑使用jQuery和附上事件的JavaScript而不是让它们存储在HTML中。

0

试试这个:

更换

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

与此

document.getElementById("mySelection").removeAttribute('disabled'); 

此外,您可能要更改

onload="mySecondFunction()" 

与此:

onchange="mySecondFunction()" 

希望这会有所帮助。

0

,如果你想删除禁用像(萨博)

See fiddle 注意到一个特定的值:把脚本B4 head标签

function mySecondFunction() 
{ 
var ddl = document.getElementById("1"); 
var selectedValue = ddl.options[ddl.selectedIndex].value; 
    if (selectedValue == "saab") 
    { 
    document.getElementById("mySelection").disabled = false; 
    }else { 
    document.getElementById("mySelection").disabled = true; 
    } 
} 

<form action=""> 
    <select id="1" name="cars" onchange="mySecondFunction()"> 
     <option value="default">default</option> 
     <option value="saab">Saab</option> 
     <option value="fiat">Fiat</option> 
     <option value="audi">Audi</option> 
    </select> 

    <br /> 

    <select disabled="disabled" name="cars" id="mySelection"> 
     <option value="Action1">Volvo</option> 
     <option value="Action2">Saab</option> 
     <option value="Action3">Fiat</option> 
     <option value="Action4">Audi</option> 
    </select> 
</form> 

UPDATE See fiddle

function mySecondFunction() 
{ 
var ddl = document.getElementById("1"); 
var selectedValue = ddl.options[ddl.selectedIndex].value; 
    if (selectedValue == "default") 
    { 
    document.getElementById("mySelection").disabled = true; 
    }else { 
    document.getElementById("mySelection").disabled = false; 
    } 
} 
+0

如何做到这一点,如果它的默认值,然后第二个下拉菜单保持禁用,而如果其他任何其他值默认第二个下拉菜单应该是可编辑的 – user3916285 2014-10-10 10:47:46

+0

只需将更改值更改为默认值并切换为假和真 函数mySecondFunction() {dd} = document.getElementById(“1”); var selectedValue = ddl.options [ddl.selectedIndex] .value; if(selectedValue ==“default”) { document.getElementById(“mySelection”)。disabled = true;其它{ document.getElementById(“mySelection”)。disabled = false; } }' – Jonathan 2014-10-11 01:27:49

+0

查看上面的更新 – Jonathan 2014-10-11 01:59:14

0

将onload更改为onchange。

<select name="cars" onchange="mySecondFunction();">