2011-09-11 27 views
0

フォームを作成しましたが、jQueryを使用してすべてのフィールドを「必須」クラスでチェックしています。フィールドの値が空の場合、最終的にエラーdivにエラーメッセージが追加されます。この "余分な"余分な原因は何ですか?

とにかく私のテストで何らかの理由でエラーdivに "name"属性を出力しようとすると "undefined"が追加されてしまいます。

ライブの例です:http://lab.willpracht.net/form.php 上部のボタンをクリックします。

firstNameの前に余分な "未定義"があります。誰がそれを引き起こしているのか把握できますか?私は地獄として混乱している。

はここにJSです:

$('input[type="button"]').click(function(){ 

      var errors; 

      // Disable the error message, if displayed. 
      $('html').scrollTop(0); 
      $('#error').fadeOut('slow'); 

      // Loop thru all required, check to see if empty. 
      $('.required').each(function(){ 
       if($(this).val() === ''){ 
        //errors += $(this).attr('id') + '<br />'; 
        errors += $(this).attr('name') + '<br />'; 
       } 
      }); 

      $('#error .texture').html(errors); 
      $('#error').fadeIn('slow'); 

     }); 

おかげで、みんな:)。

答えて

3

は、文字列としてvar errors;

+0

これはうまくいきました。ここで何が起きてるの? – Will

+0

未定義のプロパティは、変数に値が割り当てられていないことを示しているため、関数内の未定義の値に値を追加しています。エラーを空の文字列に設定すると空の文字列になり、文字列が壊れません。 – Eriksberger

2

var errors="";に定義したエラーを設定しよう:

var errors = ""; 

var errors;

だけ 変数を宣言します。値を設定せずに変数を宣言すると、値は undefinedに保持されます。

関連する問題