Проверка формы Javascript / jQuery - PullRequest
1 голос
/ 19 апреля 2011

Привет, ребята. В настоящее время я использую очень неэффективный скрипт для проверки своих форм. Код массивный.

Идея этого заключается в том, что если поле ввода пустое, метка ввода подсвечивается красным, а в верхней части формы отображается информация об ошибке.

function new_receiver(){


if (document.getElementById("RecieversName").value ==""){ //First Name

        var txt=document.getElementById("error_receiver");
        txt.innerHTML="<p><font color=\"#FF0000\">You need to enter a Name!</font></p>";    
        window.document.getElementById("RecieversName_label").style.color = '#FF0000';

        //Reset
        window.document.getElementById("receiver_check_label").style.color = '#000000';
        window.document.getElementById("RecieversNumber_label").style.color = '#000000';
        window.document.getElementById("RecieversEmail_label").style.color = '#000000';

}else if (document.getElementById("RecieversNumber").value ==""){ //First Name

        var txt=document.getElementById("error_receiver");
        txt.innerHTML="<p><font color=\"#FF0000\">You need to enter a Phone Number!</font></p>";    
        window.document.getElementById("RecieversNumber_label").style.color = '#FF0000';

        //Reset
        window.document.getElementById("receiver_check_label").style.color = '#000000';
        window.document.getElementById("RecieversName_label").style.color = '#000000';
        window.document.getElementById("RecieversEmail_label").style.color = '#000000'

}else if (document.getElementById("RecieversNumber").value ==""){ //First Name

        var txt=document.getElementById("error_receiver");
        txt.innerHTML="<p><font color=\"#FF0000\">You need to enter an Email!</font></p>";  
        window.document.getElementById("RecieversEmail_label").style.color = '#FF0000';

        //Reset
        window.document.getElementById("receiver_check_label").style.color = '#000000';
        window.document.getElementById("RecieversName_label").style.color = '#000000';
        window.document.getElementById("RecieversNumber_label").style.color = '#000000';


}else{
from.receiver.submit();

} '

Любые идеи или методы, облегчающие этот процесс, так как некоторые из моих форм имеют до 9 полей ввода, и этот метод проверки огромен!

Ура, ребята !!!

Самуэль.

Ответы [ 4 ]

1 голос
/ 19 апреля 2011

Я предлагаю что-то вроде этого:

function new_receiver() {
    var inputs = [
        {
            id: "RecieversName",
            name: "a Name"
        },
        {
            id: "RecieversNumber",
            name: "a Phone Number"
        }
        // add more here
    ],
    length = inputs.length,
    error = document.getElementById("error_receiver"),
    hasError = false,
    i;

    // reset
    for (i = 0; i < length; i++) {
        document.getElementById(inputs[i].id + "_label").style.color = "#000000";
    }
    error.innerHTML = "";

    for (i = 0; i < length; i++) {
        if (document.getElementById(inputs[i].id).value == "") {
            error.innerHTML = "<p><font color=\"#FF0000\">You need to enter " + inputs[i].name + "!</font></p>";    
            document.getElementById(inputs[i].id + "_label").style.color = "#FF0000";
            hasError = true;
            break;
        }
    }

    if (!hasError) {
        from.receiver.submit();
    }
}
1 голос
/ 19 апреля 2011

Вы можете начать, попробовав что-то вроде этого

 $('input').blur(function() {
     if($(this).val()==""){
            $("#error_receiver").html("<p><font color=\"#FF0000\">This field is required!");
            $("label[for=' + this.attr("id") + ']").css('color', '#FF0000');
         }
  });
1 голос
/ 19 апреля 2011

Вот предложение без jQuery

<form onsubmit="return new_receiver()">
.
.

var formFields = {
  "RecieversName": "You need to enter a Name!",
  "RecieversNumber":"You need to enter a Number!",
  "RecieversEmail":"You need to enter an Email!"   
}
function new_receiver(){
  var txt=document.getElementById("error_receiver");
  //Reset
  txt.innerHTML="";
  for (var o in formFields) document.getElementById(o+"_label").style.color = '#000000';

  for (var o in formFields) {
    if (document.getElementById(o).value ==""){ 
      txt.innerHTML="<p><font color=\"#FF0000\">"+formFields[o]+"</font></p>";    
      window.document.getElementById(o+"_label").style.color = '#FF0000';
      return false;
    }
  }
  return true
}  
0 голосов
/ 19 апреля 2011

вы можете использовать плагин проверки jquery http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...