0

私は2つのラジオボタンを持つフォームを持っています。1 つのボタンは 'trigger_unit'、もう 1 つは 'normal_unit' として識別されます。4 つの値とデフォルトの NULL 値を含む選択ドロップダウンもあります。

<select rel="dropdown" name="trigger_id" id="trigger_id" 
onchange="((this.value != '') ? document.getElementById('trigger_unit').checked=true : 
document.getElementById('normal_unit').checked=true;)" style="width: 120px;">
<option value="" selected="selected">--none--</option>
<option value="1">Critical</option>
<option value="2">Draw</option>
<option value="4">Heal</option>
<option value="3">Stand</option>
</select>

ドロップダウンから空白以外の値がある場合、javascriptはラジオボタンの値を変更するはずです。ここでインライン IF の例に従おうとしましたが、正確には機能していません。これを行うことはできますか、それとも 2 番目の関数を作成する必要がありますか?

4

3 に答える 3

3

onchangeハンドラーで機能するJavaScriptの短いビットがあります:

document.getElementById(this.value != '' ? 'trigger_unit' : 'normal_unit').checked=true;

すなわち

<select rel="dropdown" name="trigger_id" id="trigger_id" 
    onchange="document.getElementById(
            this.value != '' ? 'trigger_unit' : 'normal_unit'
        ).checked=true;" 
        style="width: 120px;">
    <option value="" selected="selected">--none--</option>
    <option value="1">Critical</option>
    <option value="2">Draw</option>
    <option value="4">Heal</option>
    <option value="3">Stand</option>
</select>
于 2012-11-13T14:10:26.423 に答える
2

上記の3項条件では、braxketを閉じる前にセミコロンを終了すると構文エラーが発生します。

((this.value != '') ? document.getElementById('trigger_unit').checked=true : 
document.getElementById('normal_unit').checked=true;)

次のように変更します:

(this.value != '') ? document.getElementById('trigger_unit').checked=true : 
document.getElementById('normal_unit').checked=true;

フィドルを見てください

于 2012-11-13T14:07:49.753 に答える
2

コードに誤りがあるようです;...

このフィドルは機能します:http://jsfiddle.net/bxLfu/

コードはあなたのものと同じですが、:がありませ;

<select rel="dropdown" name="trigger_id" id="trigger_id" 
onchange="((this.value != '') ? document.getElementById('trigger_unit').checked=true : 
document.getElementById('normal_unit').checked=true)" style="width: 120px;">
<option value="" selected="selected">--none--</option>
<option value="1">Critical</option>
<option value="2">Draw</option>
<option value="4">Heal</option>
<option value="3">Stand</option>
</select>
于 2012-11-13T14:07:33.787 に答える