2014-12-05 108 views
0

我是java脚本的初学者,我在这里做的是试图让我的组合框命名为“dale”以启用和禁用当我从我的“特定原因分类”中选择名为“repSelect”的组合框,但我不断收到我的java脚本错误。javascript启用和禁用组合框

function makeEnable(value){ if(value=="rep4"){ var x=document.getElementById("dale") x.disabled=false }else{ var x=document.getElementById("dale") x.disabled=true } } </script> </script> <select onChange="makeEnable(value)" name="repSelect"> <option value="rep1">Employee</option> <option value="rep2">Category Reasons Overall </option> <option value="rep3">Department Overall </option> <option value="rep4">Reasons Specific Categorized </option>
</select> <select name="dale"> <option value="rep1">dale</option> </select> <input class="button" type="submit" value="Generar Reporte" >
</form>

我修改,但dosent工作

function makeEnable(){ var e = document.getElementById("repSelect"); var strUser = e.options[e.selectedIndex].value; if(strUser=="rep4"){ document.getElementById("dale").disabled=false; }else{ document.getElementById("dale").disabled=true; } }

+1

包括您得到的错误。 – fejese 2014-12-05 11:57:50

+0

我修改了一下我会把它放在问题中,但我仍然没有发生我的“戴尔”组合框仍然启用 – 2014-12-05 12:04:18

+0

您的JavaScript无法找到名为“戴尔”的“ID” – 2014-12-05 12:07:14

回答

0

您正在使用.getElementById()方法,但你的元素没有定义的ID。在HTML中添加ID:

<select id="dale" name="dale"> 

您可能还需要修改调用你的函数在第一选择的onchange处理程序,通过this.value,而不是仅仅value

<select onChange="makeEnable(this.value)" name="repSelect"> 

你也可以基本上简化功能如下:

function makeEnable(value){ 
    document.getElementById("dale").disabled = value!="rep4"; 
} 

演示:http://jsfiddle.net/3t16p5p9/

编辑:我只是注意到,你有问题的jQuery标签。使用jQuery,删除内联onChange=属性,然后添加到您的脚本:

$(document).ready(function() { 
    $("select[name=repSelect]").change(function() { 
     $("#dale").prop("disabled", this.value!="rep4"); 
    }).change(); 
}); 

这种结合改变处理程序的第一选择,然后让第二个将被适当地启用或禁用立即调用它当页面加载时(根据评论请求)。

演示:http://jsfiddle.net/3t16p5p9/2/

+0

我改变它,但没有工作 – 2014-12-05 12:08:25

+0

它在我提供的演示中工作。你的浏览器控制台有任何错误吗?你确定这个函数实际上被调用吗? – nnnnnn 2014-12-05 12:12:22

+0

它的工作,但我如何使它禁用当我加载页面 – 2014-12-05 12:16:22

0

其实你正在使用的document.getElementById但你的组合框没有一个ID。

这就是它不工作的原因。

而不是在HTML中加入平变化的,使用如下:

<select id='repselect' onchange=makeEnable() name="repSelect"> 
    <option value="rep1">Employee</option> 
    <option value="rep2">Category Reasons Overall </option> 
    <option value="rep3">Department Overall </option> 
    <option value="rep4">Reasons Specific Categorized </option> 

    </select> 
    <select id="seldale" name="dale"> 
    <option value="rep1">dale</option> 
    </select> 
<input class="button" type="submit" value="Generar Reporte"/> 
$('#repselect').change(function(){ 
    if(this.value=="rep4"){ 
    var x= document.getElementById("seldale") 
    x.disabled=false 
    }else{ 
    var x =document.getElementById("seldale") 
    x.disabled=true 
     } 
    }); 
+0

是的,但我得到一个错误,通过参数 – 2014-12-05 11:52:07

+0

传递我的变量user3263194 - 为什么这个工作比使用问题中显示的变量'x'好? – nnnnnn 2014-12-05 12:02:41

+0

你可以把它作为答案plz是我没有得到它对不起 – 2014-12-05 12:11:47