javascript清除单个输入组的内容

时间:2012-10-29 17:27:36

标签: javascript

我有一个受抚养的表格(对问题1回答是,可以使问题2可见但是回答否可能使其不适用并消失)

我想将输入重置为无应答(无论输入类型如何)

我正在使用

            document.getElementById('quest2').value = "";

直到我了解到如果您在复选框,单选按钮或选择框中执行此操作,您实际上已将值设置为""无论用户是否再次点击其中一个选项(这很糟糕),我知道我们可以

    switch (***field_type***)
{
case "text":
case "password":
case "textarea":
case "hidden":
    document.getElementById('quest2').value = "";
    break;
case "radio":
case "checkbox":
    if (document.getElementById('quest2').checked)
    {
        document.getElementById('quest2').checked = false;
    }
    break;
case "select-one":
case "select-multi":
    document.getElementById('quest2').selectedIndex = -1;
    break;
default:
    break;
}

这是我想要做的事情的基础 我的问题首先是我的语法正确

* field_type * 所包含的内容,以检查输入的类型(id' quest2')

2 个答案:

答案 0 :(得分:1)

如果我理解正确,我会稍微重写一下。

我会做这样的事情:

var q2_Elem = document.getElementById('quest2');

switch (q2_Elem.type)
{
case "text":
case "password":
case "textarea":
case "hidden":
    q2_Elem.value = "";
    break;
case "radio":
case "checkbox":
    if (q2_Elem.checked)
    {
        q2_Elem.checked = false;
    }
    break;
case "select-one":
case "select-multi":
    q2_Elem.selectedIndex = -1;
    break;
default:
    break;
}

答案 1 :(得分:0)

您可以启用element.tagNameinputtextareaselect等。

如果element.type"input"textpassword等,

radio

我建议您添加一个.toLowerCase(),因为旧版浏览器(如标记)是大写的。