最近几天我一直在为我的网站创建联系表格,这可能是专业的,包含display:none / block和disabled:true / false areas。我做到了。但是一小时前我被告知Chrome不支持“onclick”功能所以现在我必须将所有“onlick”内容改为“onchange”..但它似乎并不清楚(仍然无法正常工作)... < / p>
ONCLICK工作正常:
<script language="javascript">
function enableField() { some function here }
function disableField() { some function here }
</script>
<select class="list" id="topic">
<option onclick="javascript:disableField()" selected="selected">Select Your topic</option>
<option onclick="javascript:enableField()">Topic 1</option>
<option onclick="javascript:enableField()">Topic 2</option>
<option onclick="javascript:disableField()">Topic 3</option>
<option onclick="javascript:disableField()">Topic 4</option>
</select>
ONCHANGE不:
<script language="javascript">
function enableField() { some function here }
function disableField() { some function here }
</script>
<select class="list" id="topic" onchange="javascript:this.value()">
<option value="disableField" selected="selected">Select Your topic</option>
<option value="enableField">Topic 1</option>
<option value="enableField">Topic 3</option>
<option value="disableField">Topic 3</option>
<option value="disableField">Topic 4</option>
</select>
我只想在“javascript:X()”中将“value”作为“X”插入,因此这个函数可以像在“ONLICK”选项中那样工作。
我一直在尝试不同的方式,但这都不起作用。
请帮忙。 问候, 麦克
答案 0 :(得分:1)
一种方法
<select class="list" id="topic" onchange="window[this.value]()">
<option value="disableField" selected="selected">Select Your topic</option>
<option value="enableField">Topic 1</option>
<option value="enableField">Topic 3</option>
<option value="disableField">Topic 3</option>
<option value="disableField">Topic 4</option>
</select>
但我会这样做
<script language="javascript">
function enableField() { some function here }
function disableField() { some function here }
function handle(value){
if (value === 'enableField'){
enableField();
} else {
disableField();
}
}
</script>
<select class="list" id="topic" onchange="handle(this.value)">
<option value="disableField" selected="selected">Select Your topic</option>
<option value="enableField">Topic 1</option>
<option value="enableField">Topic 3</option>
<option value="disableField">Topic 3</option>
<option value="disableField">Topic 4</option>
</select>
onclick
,onchange
等事件属性, 注意,您不必说明javascript:...
隐含的内容。
答案 1 :(得分:0)
this.value()
是一个字符串;你不能叫一个字符串。你想要的是在全局范围内找到函数:
window[this.value]()
此外,最好将功能存储在专用对象中:
funcs = {
disableField: function(){...},
enableField: function(){...},
}
...
funcs[this.value]()