2015-04-16 169 views
0

我不是任何一種精通JavaScript的人。 所以我寫了一個簡單的函數在HTML SELECT上使用,但它不起作用。HTML select onChange does not working

的JavaScript:

<script type="text/javascript" language="JavaScript"> 

function changeFormAction() { 

    var value = document.getElementById("format"); 

    if (value == "freeText") { 
     document.getElementById("regularExpression").setAttribute("disabled", false); 
    } 

} 

</script> 

HTML:

<select id="format" name="customFieldType" onChange='changeFormAction()'> 
    ... 
</select> 

<input id="regularExpression" type=text size=5 name="format" disabled="true"> 

任何幫助將代碼中的高度讚賞

+0

你得到任何形式的錯誤 –

+0

的問題是另一回事。它不打更改customField選擇列表中的changeFormAction函數.. –

+2

您正在檢查禁用字段的值嗎?你真的需要它嗎?順便說一句,這工作,但我不知道這是你的意圖:http://jsfiddle.net/ew5cwnts/1/? – sinisake

回答

2

包含元素「F ORMAT」。通常,要獲得該值,只需添加.value作爲後綴。但由於這是一個選擇/下拉列表,你就必須做:

var element = document.getElementById("format"); 
var value = element.options[element.selectedIndex].value; 
var text = element.options[element.selectedIndex].text; 

現在文本將包含不同的字符串象下面這樣:

<option value="thisIsTheValue">thisIsTheText</option> 

使用或者與比較。我將使用以下兩種顯示爲例:

function changeFormAction() { 
    var element = document.getElementById("format"); 
    var sValue = element.options[element.selectedIndex].value; 
    var sText = element.options[element.selectedIndex].text; 
    if (sValue == "freeText" || sText == "freeText") { 
     document.getElementById("regularExpression").removeAttribute("disabled"); 
    } 
} 
+0

對值做了「警告」,你沒錯,它返回了元素,在你的變化沒有返回任何東西之後,可能是什麼原因? – Sasha

+1

原因可能是''不包含任何東西。你沒有_value_設置。 – Mackan

+0

是的,我有,所以,謝謝。相應地更新我的問題。 – Sasha

2

的問題是別的東西。它不打的CustomField選擇列表的變化changeFormAction功能..

var value = document.getElementById("regularExpression"); 

是錯誤的用法。 。 你應該把它作爲

var value = document.getElementById("regularExpression").value 

並從禁用它留言中加入也可以

document.getElementById("regularExpression").removeAttribute("disabled"); 
1

這不會工作,因爲您試圖使用document.getElementById(「regularExpression」)獲取文本框值。

但在頁面加載時,您沒有任何東西作爲文本框中的默認值 您可能需要獲取選擇框的值。

1

我想你需要的東西是這樣的:

http://jsfiddle.net/ew5cwnts/2/

function changeFormAction(value) { 

     if (value == "freeText") { 
      document.getElementById("regularExpression").removeAttribute("disabled"); 
     } 

    } 

HTML:

<select name="customFieldType" onchange='changeFormAction(this.value)'>