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;
}

これが私がやりたいことの基礎です私の質問はまず第一に私の構文が正しいことです

次に、(id 'quest2') の入力のタイプをチェックするために*field_type*に含める必要があるもの

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( inputtextareaなどselect)。

および( 、など)element.typeの場合"input"textpasswordradio

.toLowerCase()古いブラウザはタグを大文字にするのが好きなので、a も追加することをお勧めします。

于 2012-10-29T17:29:02.867 に答える