无法正确获取下拉列表的值

时间:2012-03-14 08:30:58

标签: javascript html drop-down-menu

我有一个下拉列表和一个javascript函数,当选择下拉列表中的某个值时,它会禁用其他字段。

Javascript代码

function maritalStatusChange()
    {
        var dropdown = document.getElementById("maritalstatus").value;

        if(dropdown == 'Single')
        {
            document.getElementById("spousefld").disabled = true;
            document.getElementById("spouse_occupation").disabled = true;
            document.getElementById("address3").disabled = true;
            document.getElementById("children_no").disabled = true;
            document.getElementById("spousefld").value = "";
            document.getElementById("spouse_occupation").value = "";
            document.getElementById("address3").value = "";
            document.getElementById("children_no").value= "None";
                }
        if(dropdown == 'Married')
        {
            document.getElementById("spousefld").disabled = false;
            document.getElementById("spouse_occupation").disabled= false;
            document.getElementById("address3").disabled = false;
            document.getElementById("children_no").disabled = false;
            document.getElementById("maritalstatus").value= 'Married';
                }
        if(dropdown == 'Separated')
        {
            document.getElementById("spousefld").disabled = false;
            document.getElementById("spouse_occupation").disabled= false;
            document.getElementById("address3").disabled = false;
            document.getElementById("children_no").disabled = false;
        }
        if(dropdown == 'Widowed')
        {
            document.getElementById("spousefld").disabled = false;
            document.getElementById("spouse_occupation").disabled= false;
            document.getElementById("address3").disabled = false;
            document.getElementById("children_no").disabled = false;
        }
    }

以下是下拉列表的HTML代码以及我调用javascript函数的位置。

<select name="maritalstatus" id="maritalstatus" onchange="maritalStatusChange();">
                                <option>---------------</option>
                                <option value='Single'>Single</option>
                                <option value='Married'>Married</option>
                                <option value='Separated'>Separated</option>
                                <option value='Widowed'>Widowed</option>
                                </select><font color="red">*</font>

现在,唯一可行的是当我选择“单一”选项时,它似乎没有为其余选项获得正确的选定值。谁能告诉我我做错了什么?

谢谢!

5 个答案:

答案 0 :(得分:0)

您应该尝试“selectedIndex”:

    document.getElementById("maritalstatus").selectedIndex;

答案 1 :(得分:0)

上面的代码工作正常。您可以在http://jsfiddle.net/WmHCs/

看到它

实际错误是什么?也许代码的其他部分?

答案 2 :(得分:0)

尝试以下代码

var eve = document.getElementById("maritalstatus");
var data = eve.options[eve.selectedIndex].value;

答案 3 :(得分:0)

您在HTML中使用单个配额。将它们切换为双配额。 options的所有值都分配有这些单个配额。这就是您实际比较的内容:("'Single'"=="Single") => false

修改

如果此代码应在db中添加选择,请检查if - Single以外的其他块。如果Single您设置了一些值,但其他块只会进行一些消除。

答案 4 :(得分:0)

您只需要通过id从元素中获取值,然后提醒值。

创建一个函数并在更改时调用它。它适用于动态生成的许多值,下拉列表中没有条目限制。

<select name="maritalstatus" id="maritalstatus" onchange="maritalStatusChange();">

function maritalStatusChange()
 {
   var getValue = document.getElementById("maritalstatus").value;
   alert(getValue);
 }