javascript启用和禁用组合框

时间:2014-12-05 11:46:49

标签: javascript jquery combobox

我是java-script的初学者,我在这里正在做的是尝试让我的组合框命名为" dale"当我选择"特定原因分类时启用和禁用"来自我的组合框" repSelect"但我一直在我的java脚本上收到错误。

  

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>

我的修改但是工作

  

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; } }

2 个答案:

答案 0 :(得分:1)

您正在使用.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/

答案 1 :(得分:0)

实际上你正在使用document.getElementById,但你的组合框没有Id。

这就是它不起作用的原因。

不要在html中添加onchange,而是使用如下:

<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
      }
  });