2015-04-16 31 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)'>