使用数据库中的所有数据数组,如何使用enable \ disable字段创建复选框?

时间:2015-09-04 08:53:57

标签: javascript php html arrays checkbox

我想创建一个包含问题,复选框和文本框的表格。所有问题都在数据库中,我将它们称为数组。然后,我创建一个禁用文本框,并在选中该复选框时启用它。

问题是,如何让所有复选框和文本框都使用数组中的脚本?因为它似乎只适用于第一行,为什么呢?

$(function() {
    $('#checkservice<?php $ID ?>').click(function() {
        $('#txtpercent<?php $ID ?>').prop('disabled', !this.checked);
     });
});

以上是我的javascript。这非常有效。

<?php
$query1 = mysql_query("SELECT * FROM ftrquestion ORDER BY ID") or die("could not search!");
    $count1 = mysql_num_rows($query1);

    if ($count1 = 0){
        $output = 'Theres was not search result !';
        } else {
        while ($row1 = mysql_fetch_array($query1)) {
            $ID = $row1['ID'];
            $MCPA = $row1['MCPA'];
            $quesDescBM = $row1['quesDescBM'];
            $quesDescBI = $row1['quesDescBI'];
            ?>

            <tr height="55px">
            <td ><center><?php echo $ID ?></center></td>
            <td ><?php echo $MCPA ?></td>
            <td ><span class="BM"><?php echo $quesDescBM ?>  </span> <span class="BI"><?php echo $quesDescBI ?> </span></td>
            <td ><a href=#><img src="images.png"></td>
            <td><input type="checkbox" id="checkservice<?php $ID ?>" name="checkservice>"></td> 
            <td><input type="text" id="txtpercent<?php $ID ?>" name="txtpercent"  size="1" maxlength="3" disabled> </td>
            </tr>
            <?php
            }
        }
?>

1 个答案:

答案 0 :(得分:0)

$(function() {
    $('#checkservice<?php $ID ?>').on('click', function() {
        $('#txtpercent<?php $ID ?>').prop('disabled', !this.checked);
     });
});

在添加点击功能时,可能元素不存在?您可以使用on()方法添加DOM中已不存在的函数。您可以在此处阅读委派活动:http://api.jquery.com/on/

修改

您需要将click函数添加到每个元素,因此您可以在php中创建一个循环并为每个ID创建一个函数,或者在您的输入中添加一个类并将该函数添加到该类。

$(function() {
    $('.checkservice').on('click', function() {
        $(this).parent().next().children('input').prop('disabled', !this.checked);
     });
});

<td><input type="checkbox" id="checkservice<?php $ID ?>" class="checkservice" name="checkservice>"></td>