2017-09-28 9 views
1

Windows 7の64ビット動作しないの "複数" の属性を変更、Chromeバージョン61.0.3163.100のjavascript:要素 "を選択すると、"

私はリストボックスでHTMLページを持っている:

<select id='lst' multiple>...</select> 

私はこのリストボックスの複数の項目の選択を無効にする必要があります。 - 値が「偽」に変更

lst = document.getElementById('lst'); 
lst.multipe = false; 

私は、デバッガで確認しています 私はこのコードでjavascript関数を持っています。 しかし、 "onclick"と呼ばれる別の関数では、再び "true"になります。 [シフト]または[Ctrl]を押しながら複数の項目を選択できます。

+0

多分jsbinの例が役に立ちます。その動作は他のブラウザでも一貫していますか?関数に言及します。関数内のtrueへの「リセット」は、クロージャによって引き起こされる可能性があります。 – px1mp

答えて

1

lst = document.getElementById('lst'); 
 
lst.removeAttribute('multiple'); 
 
lst.setAttribute('multiple', true);
<select id='lst' multiple> 
 
<option>1</option> 
 
<option>2</option> 
 
</select>

複数の有無に基づいて、あなたが必要な場合は、JavaScriptからそれを削除するか、設定する必要がありますされ。

3

multiple属性はブール属性であり、そして、HTML specificationに従って:

要素にブール属性の存在が真 値を示し、属性が存在しない場合は偽の値を表します。代わりに

使用removeAttribute()

const element = document.getElementById('select'); 
 
element.removeAttribute('multiple');
<select id="select" multiple> 
 
    <option>One</option> 
 
    <option>Two</option> 
 
    <option>Three</option> 
 
</select>