我正在实施上述观点。该表是通过AJAX调用创建的。要创建红色验证框,我按原样创建表:
for($r = 0; $r < sizeof($dataArray); $r++)
for($i = 2; $i < $fields; $i++){
if(fieldIsValid($dataArray[$r][$i], $dataArray[$r][2], $i)){
Echo "<td><input class='stageAreaInput' onchange='updateData(this.value, ".$r.", ".$i.")' value='".$dataArray[$r][$i]."'></td>";
} else{
Echo "<td><input class='stageAreaInput invalidInput' onchange='updateData(this.value, ".$r.", ".$i.")' value='".$dataArray[$r][$i]."'></td>";
}
}
}
invalidInput
类触发红框。但是现在,我需要分出几行来单独识别它们以进行自动完成。我觉得一系列if语句效率低下。
如果我现在必须单独invalidInput
每行,是否有更好的方法来切换Echo
课程?
如果我的代码更多,那么请告诉我。
答案 0 :(得分:2)
我看到你用jquery
标记了这个问题。您可以使用.toggleClass()方法在调用类时自动添加和删除类。
<强>的jQuery 强>
$(".stageAreaInput").toggleClass("invalidInput");
OR
如果您想使用PHP
循环内嵌,可以使用ternary statement来切换课程。它会缩短你的代码,但(可以说)会降低你的可读性。
内联PHP:三元
for($r = 0; $r < sizeof($dataArray); $r++){
for($i = 2; $i < $fields; $i++){
echo "<td><input class='stageAreaInput ".((fieldIsValid($dataArray[$r][$i], $dataArray[$r][2], $i)) ? "" : "invalidInput")."' onchange='updateData(this.value, ".$r.", ".$i.")' value='".$dataArray[$r][$i]."'></td>";
}
}