2014-12-05 73 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