我对JavaScript并不精通。
所以我编写了一个在HTML SELECT
上使用的简单函数,但它不起作用。
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 :(得分:2)
value 包含元素“格式”。通常,要获取该值,只需添加.value
作为后缀。但是,由于这是一个选择/下拉,你将不得不这样做:
var element = document.getElementById("format");
var value = element.options[element.selectedIndex].value;
var text = element.options[element.selectedIndex].text;
现在 value 和 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");
}
}
答案 1 :(得分:2)
问题是别的..它确实在更改customField选择列表时点击了changeFormAction函数。
var value = document.getElementById("regularExpression");
用法不对.. 你应该用它作为
var value = document.getElementById("regularExpression").value
从注释中添加禁用它也可以
document.getElementById("regularExpression").removeAttribute("disabled");
答案 2 :(得分:1)
这不会起作用,因为你试图使用document.getElementById(“regularExpression”)来获取文本框值。值;
但是在页面加载时,你没有任何东西作为文本框中的默认值 您可能需要获取选择框的值。
答案 3 :(得分: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)'>