选择下拉选项时,Jquery自动填充复选框

时间:2013-03-20 13:27:33

标签: php javascript jquery loops

我有一个从数据库动态填充的表单。使用while循环显示结果。我有一个状态下拉,有三个选项可以更改订单的状态。然后,用户必须选择一个复选框,以根据所做的选择将订单的状态通过电子邮件发送给另一个用户。这当前有效,但是我想通过在选择下拉列表中的选项后将复选框设置为true来自动执行此过程,而不是手动单击复选框。生成这些结果的代码如下所示:

echo '<select id="order_status" name="order_status['.$i.']" id="id" onchange="showUser(this.value)" >';
    echo '<option value = "Pending"   name="order_status['.$i.']" class = "pending"' . ($row['status'] == 'Pending' ? ' selected=selected' : '') . '>Pending</option>';
    echo '<option value = "Approved"  name="order_status['.$i.']" class = "approved"' . ($row['status'] == 'Approved' ? ' selected=selected' : '') . '>Approved</option>';
    echo '<option value = "Disapproved" name="order_status['.$i.']" class ="disapproved"' . ($row['status'] == 'Disapproved' ? ' selected=selected' : '') . '>Disapproved</option>';
    echo '</select>';
    echo '<td><input type="checkbox" name="order_selected['.$i.']"/></td>';
    echo '</td>';

其中order_status包含选择值,所选的顺序包含用户选择的复选框。如果复选框设置为true,则会向用户发送一封电子邮件,并根据订单状态更新它们。我想做这个前端因为复选框的值不需要永久设置。我的主要问题是知道选择了哪个订单,确保将正确的复选框设置为true。

非常感谢

1 个答案:

答案 0 :(得分:1)

我将摆脱select标签中的onchange属性

echo '<select id="order_status" name="order_status['.$i.']" id="id">';
echo '<option value = "Pending"   name="order_status['.$i.']" class = "pending"' . ($row['status'] == 'Pending' ? ' selected=selected' : '') . '>Pending</option>';
echo '<option value = "Approved"  name="order_status['.$i.']" class = "approved"' . ($row['status'] == 'Approved' ? ' selected=selected' : '') . '>Approved</option>';
echo '<option value = "Disapproved" name="order_status['.$i.']" class ="disapproved"' . ($row['status'] == 'Disapproved' ? ' selected=selected' : '') . '>Disapproved</option>';
echo '</select>';
echo '<td><input type="checkbox" name="order_selected['.$i.']"/></td>';
echo '</td>';

然后用jQuery处理它全部

$(document).on('change', 'id', function() {
    if (this.value == "Pending") { //Change to whatever should auto check the box
        $("input[type='checkbox']").prop("checked", true);
    }
});