是否有更简洁的方法来切换表格以进行表单验证?

时间:2015-09-17 20:45:42

标签: javascript php jquery validation

enter image description here

我正在实施上述观点。该表是通过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课程?

如果我的代码更多,那么请告诉我。

1 个答案:

答案 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>";
    }
}