0

ラジオボタンをクリックするオプションに応じて、いくつかのdivを表示するフォームを使用します。

問題は、オプションを選択した場合を除いて、divが表示されないように設定されていることです。

そのため、div が表示されている場合に必要なプロパティを持つフォームが表示されるようにするために、次の関数を追加しました。

だから私はこの機能を与えます:

<script type="text/javascript">
function addattribute()
{
    if (document.getElementById('montant').style.display == "block")
    {
        document.getElementsByName('montant_creance').setAttribute('required');
        document.getElementsByName('condition2').setAttribute('required');
    }
    if (document.getElementById('montant').style.display == "none")
    {
        document.getElementsByName('montant_creance').setAttribute('required','false');
        document.getElementsByName('condition2').setAttribute('required','false');
    }
}
</script>   

しかし、コンソールに次のように表示されます。

Uncaught TypeError: Object #<NodeList> has no method 'setAttribute'

問題を見つける方法が本当にわかりません。

最大限の敬意を表します。

敬具。

SP。

4

2 に答える 2

2

getElementsByName要素のコレクションを返すので、例えば書く必要があります

document.getElementsByName('montant_creance')[0].setAttribute('required');

正しいインデックスを使用して、このメソッド (または などの同様のメソッド) をgetElementsByTagName使用するたびにgetElementsByClassName

于 2012-09-27T12:01:54.150 に答える
0

setAttribute は、名前と値の 2 つのパラメーターを取ります。

setAttribute('name','value');
于 2012-09-27T12:01:10.723 に答える