2012-11-13 40 views
0

我有一個帶有兩個單選按鈕的窗體。一個按鈕id爲'trigger_unit',另一個爲'normal_unit'。還有一個具有四個值和缺省NULL值的選擇下拉菜單。使用內嵌javascript更改單選按鈕的值

<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示例here,但它不完全正常工作。這可以做,或者我必須寫第二個功能嗎?

回答

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> 
2

在上面的三元條件中,關閉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; 

看一看在fiddle

3

有JavaScript的一個短一點,將你的onChange處理工作:

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>