如何使用jquery在只读文本输入中显示值

如何使用jquery在只读文本输入中显示值,jquery,html,Jquery,Html,下面是我在应用程序中显示的表格示例: Marks Per Answer Total Marks Marks Remaining (blank text input) (blank text input) 6 6 (blank readonly text input) 4 0 我遇到的问题是,可能发生的情况是,表中的任何

下面是我在应用程序中显示的表格示例:

Marks Per Answer               Total Marks    Marks Remaining

(blank text input)              
(blank text input)               6              6           

(blank readonly text input)      4              0
我遇到的问题是,可能发生的情况是,表中的任何只读文本输入都应显示与“总分”列下的数字相同的值。因此,该表应如下所示:

Marks Per Answer                   Total Marks    Marks Remaining

(blank text input)                    
(blank text input)                    6              6

(readonly text input value='4')       4              0
我的问题是,为了在只读文本输入中显示正确的值,我需要在下面的代码中更改什么

if ($("[class*=q" + i + "_mark]").length == 1) {
    //alert(t_marks);
    var t_marks = $("[class*=q" + i + "_ans]");
    var t_marksHtml = t_marks.html();
    t_marks.html("0");
    $("[class*=q" + i + "_mark]").val(t_marksHtml).attr('readonly', true);
    //$("[class*=q"+i+"_mark]").attr('readonly',true);
}
以下是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="answermarkstd">
<input class="individualMarks q1_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
<td class="totalmarkstd" rowspan="2">6</td>
<td class="noofmarkstd q1_ans_text"  q_group="1" rowspan="2"><strong>5</strong></td>
</tr>

<tr class="questiontd">
    <td class="answertd" name="answers[]">D</td>
<td class="answermarkstd">
<input class="individualMarks q1_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
</tr>

<tr class="questiontd">
<td class="answermarkstd">
<input class="individualMarks q2_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
<td class="totalmarkstd" rowspan="1">6</td>
<td class="noofmarkstd q2_ans_text"  q_group="1" rowspan="1"><strong>5</strong></td>
</tr>
</tbody>
</table>

似乎您需要这样的东西,因为带有span的表的标记很难看,很难选择适当数量的剩余标记,所以这里有一个允许-1的bug,所有其他的都可以

您需要检查标记,因为输入标记和保留标记之间的关系不明确


表中的任何只读文本输入都应该显示-但是html中没有只读文本,只有JS中设置为只读的文本-您能解释一下哪些文本输入要设置为只读吗?此外,您的html无效:id应该是唯一的,因此您应该为qx_标记_0使用id,而不是将其作为样式;​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 将查找任何已为只读的字段,并将其值设置为同一表行中的total marks值…似乎您误导了问题:将文本设置为只读输入没有任何问题您的选择器太糟糕了,为什么需要jquery?我的代码中没有包含完整的jquery函数和完整的html,但我想说的是,如果一个问题只包含一个单一答案,那么这个问题的文本输入应该是只读的,否则如果一个问题中有多个答案,那么这个问题中的文本输入就不是只读的
$('.individualMarks').change(function() {
    t = $(this);
    console.log(t.parents('tr').get(0));
    var remain_e = t.parents('tr').children('.noofmarkstd').last().children();
    console.log(remain_e.get(0));
    if (remain_e.length < 1) {
        var c = 2;
        var m = $(this);
        while (remain_e.length < 1 && c < 100) {

            remain_e = m.parents('tr').prev().children('.noofmarkstd').last().children();
            m = m.parents('tr').prev();
            c++;
        }
        if (c >= 100) {
            console.error('error finding element!');
            return;
        }
    }
    remain = remain_e.html();
    remain--;
    if (remain <= 0) {
        t.attr('readonly', "true"), remain_e.parents('tr').find('input').attr('readonly', "true")
    };
    remain_e.html(remain);
});​