0

私はこのコードを持っていますが、「GetElementByID」関数が機能しない理由がわかりません。誰か助けてもらえますか?

関数:

function Disabilita(control)
    {
        if (control.checked)
        {
            alert ("checkbox ceccata");
            document.getElementById(rag_soc_spedizione).disabled=TRUE;
            document.getElementById(nome_spedizione).disabled=TRUE;
            document.getElementById(cognome_spedizione).disabled=TRUE;
            document.getElementById(nazione_spedizione).disabled=TRUE;
            document.getElementById(provincia_spedizione).disabled=TRUE;
            document.getElementById(comune_spedizione).disabled=TRUE;
        }
        else
        alert ("checkbox non ceccata");
        {
            document.getElementById(rag_soc_spedizione).disabled=FALSE;
            document.getElementById(nome_spedizione).disabled=FALSE;
            document.getElementById(cognome_spedizione).disabled=FALSE;
            document.getElementById(nazione_spedizione).disabled=FALSE;
            document.getElementById(provincia_spedizione).disabled=FALSE;
            document.getElementById(comune_spedizione).disabled=FALSE;
        }
    }
    </script>

関数が割り当てた要素

<input type="checkbox" value="true" name="dati-sped-fatt" id="dati-sped-fatt" onClick="Disabilita(this)">

両方のアラートが表示されますが、無効になるコントロールはありません。

4

5 に答える 5

0

それが唯一の問題かどうかはわかりませんが、すべての getelementbyid で ID を引用符で囲む必要があります

document.getElementById(rag_soc_spedizione).disabled=TRUE;

する必要があります

document.getElementById("rag_soc_spedizione").disabled=true;
于 2013-08-29T12:56:18.300 に答える
0

他に中括弧を入れていないことを確認してください。

そのため、アラートを実行し、すべての要素を false に設定します。中かっこを入れない場合、deault により、1 行のコードのみが実行されます

function Disabilita(control)
    {
        if (control.checked)
        {
            alert ("checkbox ceccata");
            document.getElementById('rag_soc_spedizione').disabled=TRUE;
            document.getElementById('nome_spedizione').disabled=TRUE;
            document.getElementById('cognome_spedizione').disabled=TRUE;
            document.getElementById('nazione_spedizione').disabled=TRUE;
            document.getElementById('provincia_spedizione').disabled=TRUE;
            document.getElementById('comune_spedizione').disabled=TRUE;
        }
        else
        {
          alert ("checkbox non ceccata");

            document.getElementById('rag_soc_spedizione').disabled=FALSE;
            document.getElementById('nome_spedizione').disabled=FALSE;
            document.getElementById('cognome_spedizione').disabled=FALSE;
            document.getElementById('nazione_spedizione').disabled=FALSE;
            document.getElementById('provincia_spedizione').disabled=FALSE;
            document.getElementById('comune_spedizione').disabled=FALSE;
        }
    }
    </script>
于 2013-08-29T13:05:23.713 に答える
0

コロンで id 名を指定する必要があります。これを試して:

document.getElementById("rag_soc_spedizione").disabled="disabled";
于 2013-08-29T12:55:58.890 に答える
0

3つの問題!最初の TRUE と False は無効です。true または false を使用する必要があります。

document.getElementById(comune_spedizione).disabled=TRUE;
    }
    else
    alert ("checkbox non ceccata");
    {
        document.getElementById(rag_soc_spedizione).disabled=FALSE;

アラートはエラーを引き起こします!、if ステートメントでエラーが発生し、javascript が機能しません

最初に if else エラーを取り除き、次に document.getElementById("rag_soc_spedizione").disabled="disabled"; を使用します。

3 番目の問題 > getElementById のパラメーターは文字列です

于 2013-08-29T12:57:42.403 に答える