我在下面有一个代码,它在一列显示文本输入,第二列显示总标记列,最后一列显示剩余标记。该表如下所示:
Marks Per Answer Total Marks Marks Remaining
(blank text input) 4 4
(blank text input) 6 6
但我遇到的问题是文本输入为空,它们应显示“Total Marks”列的值(第一个文本输入为4,第二个文本输入为6)。
同样由于两个文本输入都包含总标记,在“剩余标记”列下,两行都应显示0.(对于第一行4,文本输入减去4,总标记为0,对于第一行剩余标记为0。第二行6从文本输入减去6总计标记为0表示剩余标记为第二行)
所以表格应该如下所示:
Marks Per Answer Total Marks Marks Remaining
(text input value=4) 4 0
(blank text input value=6) 6 0
我的问题是,如何通过更改下面的jquery来解决上述两个步骤:
$(function() {
//alert("here");
var questions = $('#markstbl td[class*="_ans"]').length;
//disable single entry
for (var i=0;i<=questions;i++){
if($("[class*=q"+i+"_mark]").length ==1){
var t_marks = $("[class*=q"+i+"_ans]").html();
//alert(t_marks);
alert(t_marks);
$("[class*=q"+i+"_mark]").val(t_marks).attr("disabled","disabled");
//$("[class*=q"+i+"_mark]").attr("disabled","disabled");
}
}
}
以下是动态HTML表格:
<table border='1' id='markstbl'>
<thead>
<tr>
<th class='answermarksth'>Marks per Answer</th>
<th class='totalmarksth'>Total Marks</th>
<th class='noofmarksth'>Marks Remaining</th>
</tr>
</thead>
<tbody>
<tr class="questiontd">
<td class="answertd" name="answers[]"><?php echo$searchAnswer[$key]?></td>
<td class="answermarkstd">
<input class="individualMarks q<?php echo$questionId?>_mark_0" q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
<?php
if($questionId != $prev_ques){
?>
<td class="totalmarkstd" rowspan="<?php echo$row_span[$questionId]?>"><?php echo$totalMarks[$key]?></td>
<td class="noofmarkstd q<?php echo$questionId?>_ans_text" q_group="1" rowspan="<?php echo$row_span[$questionId]?>"><?php echo"<strong>".$searchMarks[$key]."</strong>"?></td>
<?php
}
?>
</tr>
<?php
$prev_ques = $questionId;
}
?>
</tbody>
</table>
目前在jquery函数中我试图使用t_marks变量来显示文本输入中的值,但是在表行中的每个SINGLE文本输入中没有显示任何内容
答案 0 :(得分:0)
我想我已经为你弄清楚了。见http://jsfiddle.net/jhfrench/NsWRv/
我使用jQuery循环输入元素,分类为&#39; .individualMarks&#39;使用('input.individualMarks').each(...)
,然后使用parent()
查找输入的父级td。从那里,我得到 td的兄弟姐妹的值,然后执行简单的数学运算并将结果值分配给&#34;剩余的标记&#34;列。
我进一步指出onChange事件,每次操作输入字段时都会重新启动更新函数。
如果此页面上有许多字段,您可能会花时间将其转换为插件,以便您可以针对jQuery对象执行它,并且只更新与更新的输入字段相关的行(现在它可以重新计算所有输入/表格行,用于更改任何输入。)
我不熟悉PHP,但我认为您的原始代码会导致ID重复。尽量避免这种情况!