Javascript OnChange在第一次更改时未触发

Javascript OnChange在第一次更改时未触发,javascript,html,Javascript,Html,我有一个关于select html元素中的“onchange”事件的问题。我写的代码应该显示特定的文本框,这取决于选择了哪个选择选项 我的守则如下: Customer Type: <select name="customerType" onchange="cust_type()"> <option value="" selected>Customer Type?</option> <option value="nonCorp">Customer&

我有一个关于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>
我遇到的问题是,当我第一次更改选择菜单中的选项时,onchange没有任何效果。然而,在第二、第三等方面,它似乎工作得非常好


感谢您抽出时间阅读我的问题。

您是否尝试用JavaScript添加事件

var yourSelectElement = document.getElementById('test');
yourSelectElement.onchange = cust_type;
让我们看看:

您是否尝试这样做?

修复:

我没有直接更改文本框的可见性,而是将它们包装在单独的div中。代码解决方案如下所示

HTML:


在初始更改中,您是否实际更改了最初的值?onchange事件的其余部分在哪里?我在你的密码里看不到,是的。例如,我会将其从“客户类型”更改为“客户”或“公司”@danieljohnson您是什么意思@the_pete您是否尝试过这样的操作:yourSelectElement.onchange=cust_type;不,我没有。我现在已经解决了问题,我正要发布修复程序。无论如何,谢谢你。
var yourSelectElement = document.getElementById('test');
yourSelectElement.onchange = cust_type;
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>   

<div id="nonCorpCustDetails" class="custDetails" style="visibility:hidden">

    Forename <input type="text" name="forename" id="forename" onchange="submit_check()" />
Surname <input type="text" name="surname" id="surname" onchange="submit_check()" /.

</div>

<div id="corporateCustDetails" class="custDetails" style="visibility:hidden">

Company Name <input type="text" name="companyName" id="companyName" onchange="submit_check()" />

</div>
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');
var nonCorp = document.getElementById('nonCorpCustDetails');
var corp = document.getElementById('corporateCustDetails');


if(selected == "") {

        nonCorp.style.visibility = 'hidden';
    corp.style.visibility = 'hidden';

    f_name.value = "";
        s_name.value = "";
    c_name.value = "";

}

if(selected == "nonCorp") {

    nonCorp.style.visibility = 'visible';
    corp.style.visibility = 'hidden';

    c_name.value = "";

}

if(selected == "corp") {

    nonCorp.style.visibility = 'hidden';
        corp.style.visibility = 'visible';

    f_name.value = "";
    s_name.value = "";

}


}