0

そこで、フォームの要素をループして要素の長さをチェックする関数を作成してみました。その場合は、クラスを変更して、スタイルを変更できるようにします。私が想定したコードは機能し、コンソールでエラーが発生しないため、何が問題になっているのかを正確に特定することはできません。誰かがこれがうまくいかない理由やそれを修正する方法を教えてくれたら、それは素晴らしいことです!ありがとうございました!

function validate_form(){
 var form = document.forms['form_name']; //store form into a variable
 var validated = true; // store return value for onsubmit attribute
     for(i=0; i<form.elements.length; i++){
      if(form.elements[i].value.length){  // check if form elements are empty
           form.elements[i].className = "validate_failed";  // if elements are empty, add a class that will style them
           validated = false;
           return validated;
    } else{
        validated = true;
        return validated;
    }
    return validated;
}
return validated;
}
4

3 に答える 3

2

試す

function validate_form(){
  var form = document.forms['form_name']; //store form into a variable
  for(var i=0; i<form.elements.length; i++){
    if(form.elements[i].value.length===0){  // check if form elements are empty
      form.elements[i].className = "validate_failed";  // if elements are empty, add a class that will style them
      return false;
  }
  return true;
}

仮定

<form onsubmit="return validate_form()" ...

またはすべてを邪魔にならないようにします

window.onload=function() {
  document.forms['form_name'].onsubmit=function() {
    for(var i=0; i<this.elements.length; i++){
      this.elements[i].className = "";
      if(this.elements[i].value.length===0){  // check if form elements are empty
        this.elements[i].className = "validate_failed";  // if elements are empty, add a class that will style them
        return false;
      }
      return true;
    }
  }
}
于 2013-03-24T19:40:46.233 に答える
1

ループの最初の実行中に戻ってくるためvalidated、フォームの最初の要素のみをチェックします。を設定validatedして、ループの後に返します(または、何をしたいかによっては、最初にfalseに設定したときに戻ります)。

また、ジョーがコメントしたように、それがグローバルではないようにするのではvar iなく、持っている必要があります。ii

于 2013-03-24T19:26:56.320 に答える
0

次のコードは空の要素に対して機能します

if(!form.elements[i].value.length){ 

また

if(form.elements[i].value.length === 0){ 
于 2013-03-24T19:42:52.073 に答える