2016-12-14 21 views
1

jQueryで動作するフォームを作成しましたが、送信ボタンは無効になっていますが、セレクタには値がありません。jqueryフォームが機能しないのはなぜですか?

でも動作しません。/すべてのセレクタに値が設定されている場合、送信ボタンはまだ無効です。 何が間違っているのかを教えてください。

fiddle

JS:

(function() { 
    $('.form-valid').keyup(function() { 

     var empty = false; 
     $('.form-valid').each(function() { 
      if ($(this).val() == '') { 
       empty = true; 
      } 
     }); 

     if (empty) { 
      $('#register').attr('disabled', 'disabled'); 
     } else { 
      $('#register').removeAttr('disabled'); 
     } 
    }); 
}) 
+0

http://jsfiddle.net/cale_b/rgs7soaa/1/

そしてここでは、更新されたコードですkeyup()イベント...ドロップダウンを変更すると、いずれのキーも押さない – Alexis

+0

だから私はどんなイベントを使うべきですか? –

答えて

0

次の2つの問題がありました。あなたの文書が準備

  1. を技術的に正しくありませんでした。
  2. selectの要素でkeyupを見ていました。彼らは通常、キーアップイベントを持っていませんが、むしろchangeイベントです。ここで

は更新作業フィドルです:

// Corrected the jQuery document ready. 
// Originally: (function() { 
jQuery(function($) { 
    // Changed this from "keyup" to "change" 
    $('.form-valid').change(function() { 
     var empty = false; 
     $('.form-valid').each(function() { 
      if ($(this).val() == '') { 
       empty = true; 
      } 
     }); 

     if (empty) { 
      $('#register').attr('disabled', 'disabled'); 
     } else { 
      $('#register').removeAttr('disabled'); 
     } 
    }); 
}) 
+0

thx、助かりました、うまく動作します=) –

0

あなたはselectタグ用.changeの代わり.keyupを使用する必要があります:あなたが作っ

$('.form-valid').change(function() { 
    var empty = false; 
    $('.form-valid').each(function() { 
     if ($(this).val() == '') { 
      empty = true; 
     } 
    }); 

    if (empty) { 
     $('#register').attr('disabled', 'disabled'); 
    } else { 
     $('#register').removeAttr('disabled'); 
    } 
}); 
+1

本当に**あなたは.change **を使うべきです。 OP *はどんなイベントでも使えますが、それが変わらないとうまくいかないのです。 –

関連する問題