1

我有一个从属表格(对问题 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') 的输入类型

4

2 回答 2

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;
}
于 2012-10-29T17:41:11.993 回答
0

您可以打开element.tagName( input,textareaselect)

element.type如果是"input"( text, password,等radio)

我建议还添加一个.toLowerCase(),因为较旧的浏览器喜欢他们的标签是大写的。

于 2012-10-29T17:29:02.867 回答