试图显示一个值,当选择列表选项更改onchange
问题描述:
我想要做的是这样的: 当从下拉列表中选择一项工作,我想填充totally表中的hourlyRate字段数额。
这是我的下拉列表:试图显示一个值,当选择列表选项更改onchange
<fieldset>
<legend>What is your position?</legend>
<select name="job" id="job">
<option value="job0">Please select a position:</option>
<option value="job1">Server/Bartender</option>
<option value="job2">Greeter/Busser</option>
<option value="job3">Kitchen Support</option>
</select>
</fieldset>
这是我汇总表:
<div id="totals">
<table width="408">
<tr>
<td width="214">Hourly Rate:</td><td width="57" id="hourlyRate"></td></tr>
</table>
</div>
这是我的javascript:
var $ = function (id) {
return document.getElementById(id);
}
function rateChange() {
var rate="";
if ($('job').value == 'job0') {
rate = '0';
}
if ($('job').value == 'job1') {
rate = '12';
}
if ($('job').value == 'job2') {
rate = '10';
}
if ($('job').value == 'job3') {
rate = '11';
}
$('hourlyRate').innerHTML = "$ " + rate;
}
window.onload = function() {
$('job').onchange = rateChange();
}
因此,如果有人从下拉菜单中选择服务器/酒保列表中,我希望总计表中的hourlyRate字段显示$ 12。我无法弄清楚我做错了什么!
答
它看起来像你调用你的函数直线距离,而不是告诉它要在onchange
事件称为:
$('job').onchange = rateChange();
所以rateChange
(什么)的返回值分配给onchange事件。
试试这个:
$('job').onchange = rateChange;
现在rateChange
功能是将要运行onchange
事件触发时的功能。
答
...
你必须WIRTE:
$('job').onchange = rateChange;
刚刚试过......工作正常。 如果您添加括号,该函数将仅在window.onload
中被调用一次...
非常感谢。我知道这是一件愚蠢的事情,我做错了。 – TaraX 2013-02-17 20:13:06