2011-04-01 100 views
0

我的應用程序包含一個textField和一個下拉框。當我選擇「所有廣告系列」時,我應該禁用我的文本框,並且當我選擇「此廣告系列」時應該保持啓用狀態。下面給出代碼以供參考,但我沒有收到任何錯誤或異常。請幫助我。禁用下拉框中特定選擇的文本字段

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>TextBoxDisabling</title> 
<script type="text/javascript"> 
    function findselected() { 
     document.getElementById('selmenu'); 
     document.getElementById('txtField'); 
     (state.value == "All Campaign") ? txtField.disabled = true 
       : txtField.disabled = false 
    } 
</script> 
</head> 
<body> 
<form action="" method="POST" name="form1"> 
<select name="selmenu" 
    onChange="findselected()"> 
    <option value="1">This Campaign</option> 
    <option value="2">All Campaign</option> 
</select> <input type="text" size="20" id="txtField" name="txtField"></form> 

</body> 
</html> 

回答

0

對於啓動..你的選擇是缺少

id="selmenu" 

而且我也覺得,你的代碼

(state.value == "All Campaign") 

應該

(state.value == 2) 

因爲你引用價值,而不是文字。

+0

+正如湯姆格倫提到的...你不是將元素分配給任何變量。起初我沒注意到的東西:) – Damb 2011-04-01 10:41:16

0

您沒有將您的document.getElementById()調用的值分配給任何東西。

試試這個:

function findselected() { 
     var selMenu = document.getElementById('selmenu'); 
     var txtField = document.getElementById('txtField'); 
     if(selMenu.value == 2) ? txtField.disabled = true 
       : txtField.disabled = false 
} 

編輯:此外,如先前建議你需要給你的選擇菜單 「selmenu」 的ID。

2

試試這個

<script type="text/javascript"> 
function findselected() { 
    var selMenu = document.getElementById('selmenu'); 
    var txtField = document.getElementById('txtField'); 
    if(selMenu.value == '2') 
     txtField.disabled = true 
    else 
     txtField.disabled = false 
} 

</script> 


<form action="" method="POST" name="form1"> 
    <select name="selmenu" id="selmenu" onChange="findselected()"> 
    <option value="1">This Campaign</option> 
     <option value="2">All Campaign</option> 
    </select> 
    <input type="text" size="20" id="txtField" name="txtField"> 
</form> 
0

這裏是你需要做的..

給你的選擇元素的ID

<select name="selmenu" id='selMenu' onChange="findselected()">

,利用此功能的東西:


function findselected() {  

    var state = document.getElementById('selmenu'); 
var txt = document.getElementById('txtField'); 
stateName = state.options[state.value-1].innerHTML; 
(stateName == "All Campaign") ? txt.disabled = true : txt.disabled = false ; 

     }

請注意,VA選擇的選擇是1或2,而不是選項中的文字。爲了選擇文本選項,你必須讀取options數組元素的innerHTML。

相關問題