2013-07-22 97 views
0

我有這樣一個automaticaly驗證從一些土壤污染物接收到的數據的HTML表分析:驗證數據和彩色細胞acordingly

<table id="table1"> 
    <thead class="fixedHeader"> 
<tr><input type="submit" value=" Validate "/><input type="reset"value="réinitialiser" "></tr> 
</thead> 
    <tbody id="form1" class="scrollContent"> 
<tr> 
    <td>COT</td> 
    <td><input type="text" class="cellData" name="celula1" id="celula1" value="" /</td> 
    <td>mg/kg</td> 
    <td id="soilMessage1" class="y_n" ></td> 
</tr> 
<tr> 
    <td>HCT C10-C40</td> 
    <td><input type="text" class="cellData" name="celula2" id="celula2" value="" /></td> 
    <td><p>mg/kg</p></td> 
    <td id="soilMessage2" class="y_n"></td> 
</tr> 
</table> 

和這正好爲37個細胞,但我張貼只有兩個給你一個ideea。 現在我試圖顏色按從這個腳本獲得的結果細胞「soilMessageX」的背景:

window.onload=function() { 
document.getElementById("form1").onsubmit=function() 
    { 
    var celula1 = parseInt(this.celula1.value,10); 
    celula2 = parseInt(this.celula2.value,10); 
     { 
var text1 ; 
if (celula1 <= 399) text1 = "FNADE Classe 3"; 
    else if (celula1 >= 400 && celula1 <= 1800) text1 = "FNADE Classe 2"; 
    else if (celula1 >= 1801) text1 = "FNADE Classe 1" ; 
    else text1 = "SVP inserez des donnes"; 
    document.getElementById("soilMessage1").innerHTML=text1; 
var text2 ; 
if (celula2 <= 499) text2 = "FNADE Classe 3"; 
    else if (celula2 >= 500 && celula2 <= 2000) text2 == "FNADE Classe 2"; 
    else if (celula2 >= 2001 && celula2 >= 10000) text2 == "FNADE Classe 1"; 
    else if (celula2 > 10000) text4 = "Concentration trop élevée"; 
    else text2 = "SVP inserez des donnes"; 
    document.getElementById("soilMessage2").innerHTML=text2; 
return false 
    } 
    } 
    } ; 

,這也正好爲37層的細胞。 (如果你可以給我一個關於如何簡化這個問題的想法,我會感激不盡,但這不是主要的)。

我試圖用這個腳本來更改答案單元格的顏色:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$("#form1 td.y_n:contains('FNADE Classe 3')").css('background-color','#fcc'); 
}); 
</script> 

但蒙山沒有結果。

有人請賜教嗎? 謝謝

+0

你缺少一個')'的'$(文件).ready'函數結束 – Spokey

+1

你的腳本設置土壤信息將在提交表單時運行 - 但在文檔加載之前,運行單元背景的腳本會運行。 – Fake51

+0

對不起,我的壞只是在這裏打錯了,但它不是問題@spokey – Nilbog

回答

0

您可以循環通過y_n細胞和採取相應的行動:

$('#table1 td.y_n').each(function() { 
    // 'this' is the cell so you can do your checks and then 
    $(this).css(...); 
}); 
+0

然後我必須分別驗證每個單元格,或者它適用於整個陣列像我的情況? – Nilbog

+0

你檢查我在上面發佈的函數中的每個單元格。就在$(this).css行之前。該單元由'this'標識。 .each函數使用y_n類循環所有的td元素。 –

+0

好的,我會嘗試,但是沒有一個選項可以讓全局函數只有3個變量? – Nilbog