【发布时间】:2014-04-08 13:54:36
【问题描述】:
我有一个关于 select html 元素中的“onchange”事件的问题。我编写的代码应该根据选择的选择选项显示某些文本框。
我的代码如下:
Customer Type:
<select name="customerType" onchange="cust_type()">
<option value="" selected>Customer Type?</option>
<option value="nonCorp">Customer</option>
<option value="corp">Corporate</option>
</select>
JS:
function cust_type() {
var select_drop = document.getElementsByName('customerType');
var selected = select_drop[0].value;
var f_name = document.getElementById('forename');
var s_name = document.getElementById('surname');
var c_name = document.getElementById('companyName');
if(selected == "") {
f_name.style.visibility = 'hidden';
s_name.style.visibility = 'hidden';
c_name.style.visibility = 'hidden';
f_name.value = "";
s_name.value = "";
c_name.value = "";
}
if(selected == "nonCorp") {
f_name.style.visibility = 'visible';
s_name.style.visibility = 'visible';
c_name.style.visibility = 'hidden';
c_name.value = "";
}
if(selected == "corp") {
f_name.style.visibility = 'hidden';
s_name.style.visibility = 'hidden';
c_name.style.visibility = 'visible';
f_name.value = "";
s_name.value = "";
}
}
我遇到的问题是当我第一次更改选择菜单中的选项时,onchange没有效果。然而,在第二个、第三个等上,它似乎工作得很好。
感谢您花时间阅读我的问题。
【问题讨论】:
-
在初始更改时,您实际上是否更改了最初的值?
-
您的 onchange 事件的其余部分在哪里?我在您的代码中没有看到它。
-
是的。例如,我会将其从“客户类型?”致“客户”或“公司”@DanielJohnson
-
你是什么意思@the_pete
-
您是否尝试过类似的方法:yourSelectElement.onchange = cust_type;
标签: javascript html