2013-07-22 52 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