我想创建一个包含问题,复选框和文本框的表格。所有问题都在数据库中,我将它们称为数组。然后,我创建一个禁用文本框,并在选中该复选框时启用它。
问题是,如何让所有复选框和文本框都使用数组中的脚本?因为它似乎只适用于第一行,为什么呢?
$(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
}
}
?>
答案 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>