相关的下拉错误

时间:2015-03-27 11:48:15

标签: javascript jquery html

我正在尝试使用javascript / jquery来创建一个贷款计算器 我有这个功能

function setOptions(chosen, selbox) {

selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option(' ',' ');
setTimeout(setOptions(' ',document.myform.optthree),5);
}
if (chosen == "1") {
selbox.options[selbox.options.length] = new Option(' ','11');
selbox.options[selbox.options.length] = new Option('Yes','12');
selbox.options[selbox.options.length] = new Option('No','13');
setTimeout(setOptions('11',document.myform.optthree),5);
setTimeout(setOptions('11',document.myform.optfour),5);
setTimeout(setOptions('11',document.myform.optfive),5);
}
.....

}

我正在使用这个javascript

$( document ).ready(function() {
$( "select[name='optone']" ).change(function() {

 setOptions(document.myform.optone.options[document.myform.optone.selectedIndex].value,document.myform.opttwo);

});
});

和这个html

<form name="myform">
<select name="optone" size="1">
        <option value=" " selected="selected"></option>
        <option value="1">Salaried</option>
        <option value="2">Self Employed</option>
        <option value="3">Professional</option>
        <option value="4">House Wife</option>
    </select><br />
<select name="opttwo" size="1">
        <option value=" " selected="selected"></option>
    </select>
 </form>



我收到此错误:

enter image description here



如果有任何帮助,我应该定义任何对象吗?



谢谢,

1 个答案:

答案 0 :(得分:1)

document.myform未定义

使用jQuery,您的功能将是:

$( "select[name='optone']" ).change(function() {

   setOptions($(this).val(), $("select[name='opttwo']")[0]);

});

更新

this - 已包含事件定位于(select[name='optone']

的元素

$(this) - 将此元素设为jQuery对象

.val() - 获取select元素的选定值

$("select[name='opttwo']") - 获取名为“opttwo”的select元素,它是jQuery对象

$("select[name='opttwo']")[0] - 从jQuery对象获取DOM元素。但请注意,如果您有多个名称为“opttwo”的表单,则只返回第一个表单。