2016-12-14 27 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

你做keyup()事件...當您更改下拉菜單時,您不會按任何鍵 – Alexis

+0

那麼我應該使用什麼事件? –

回答

0

你有兩個問題:

  1. 你的文件準備不技術上是正確的。
  2. 您正在觀看keyupselect元素。他們通常沒有關鍵事件,而是一個change事件。

這裏有一個更新的工作小提琴:http://jsfiddle.net/cale_b/rgs7soaa/1/

下面是更新後的代碼:

// 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

您應該使用.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 *可以使用*任何事件,但它不工作,除非它改變.... –