2015-09-17 7 views
2

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

я бы с функцией, которая возвращает 'invalidInput' вызывается в цикле –

+0

я хочу попробовать этот подход –

ответ

2

Я вижу, что вы отметили этот вопрос jquery. Вы можете использовать метод .toggleClass() для автоматического добавления и удаления класса при каждом вызове.

JQuery

$(".stageAreaInput").toggleClass("invalidInput"); 

ИЛИ

Если вы хотите сделать это рядный с 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>"; 
    } 
} 
+0

, но как может, если триггер утверждение о том, как Я строю таблицу? –

+0

После того, как вы закончите сборку таблицы, вы можете вызвать ее, чтобы установить недопустимые поля. Я добавлю еще один способ сделать это в 'PHP', так как выглядит так, как вы здесь спрашиваете. – asdf

+0

Я дам ему попробовать –

Смежные вопросы