2012-11-22 60 views
0

我有一個代碼如下,它顯示一列中的文本輸入,第二列中的總標記列和最後一列中剩餘的標記。該表看起來像下面這樣:如何在只讀文本框中顯示值在下例中

Marks Per Answer  Total Marks Marks Remaining 
(blank text input)  4    4 
(blank text input)  6    6 

但我的問題是,文本輸入是空的,就應該顯示「佔總分」欄目(的值,4爲第一個文本輸入和6第二個文本輸入)。

此外,由於兩個文本輸入均包含總標記,因此在「剩餘待標記」列下,兩行應顯示爲0.(對於第一行,文本輸入減去4,總標記下爲第一行剩餘標記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變量顯示在文本輸入值的時刻,但沒有什麼是每個單個文本內顯示在表格行內輸入

回答

0

我想我已經想通了你。請參閱http://jsfiddle.net/jhfrench/NsWRv/

我使用jQuery循環輸入元素,使用('input.individualMarks').each(...)分類爲'.individualMarks',然後使用parent()查找輸入的父級td。從那裏,我得到 td的兄弟姐妹的值,然後執行簡單的數學計算並將結果值分配給「剩餘標記」列。

我通過onChange事件進行了更進一步的嘗試,每次操縱輸入字段時都會拒絕更新函數。

如果這個頁面上有很多字段,你可能會花時間把它轉換成一個插件,這樣你就可以對jQuery對象執行它,只更新與更新的輸入字段有關的行(現在它爲所有用於改變任何輸入的輸入/表格行)。

我不熟悉PHP,但我認爲你的原始代碼會導致重複的ID。儘量避免這種情況!