0

我有一个带有两个单选按钮的表单。一个按钮标识为“trigger_unit”,另一个按钮标识为“normal_unit”。还有一个包含四个值和一个默认 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 示例进行操作,但它并不完全有效。可以这样做还是我必须编写第二个函数?

4

3 回答 3

3

有一小段 javascript 可用于您的 onchange 处理程序:

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

IE

<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

看起来;您的代码中有错误...

这个小提琴有效: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 回答
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;

看看小提琴

于 2012-11-13T14:07:49.753 回答