为什么我的jquery表单不起作用?

时间:2016-12-14 13:56:27

标签: jquery forms

我制作了一个与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');
        }
    });
})

2 个答案:

答案 0 :(得分:0)

你有两个问题:

  1. 您准备好的文件在技术上并不正确。
  2. 您正在select元素上观看keyup。他们通常没有关键事件,而是change事件。
  3. 这是一个更新的工作小提琴: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');
            }
        });
    })
    

答案 1 :(得分: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');
    }
});