jquery在最后一个字段开始输入时启用提交按钮

时间:2015-06-17 06:13:13

标签: jquery

我可以在填写所有输入字段之前禁用提交按钮。 但是,我需要在用户开始在最后输入字段上键入时启用提交按钮。(但需要在输入最后一个字段之前填写所有字段之前进行检查)

最后一个输入字段:

<input type="password" class="passwd" />

jquery的

function init(){
        $form = $('#signupFrm'); // cache
        $form.find('a.submit').addClass('disableClick');

        $form.find(':input').change(function() { // monitor all inputs for changes
            var disable = false;
            $form.find(':input').each(function(i, el) { // test all inputs for values
                if ($.trim(el.value) === '') {
                    disable = true; // disable submit if any of them are still blank
                }
            });
            if(disable == true)
                $form.find('a.submit').addClass('disableClick');
            else
                $form.find('a.submit').removeClass('disableClick');
        });
    }

有没有办法使用jquery keyPress

启用按钮

5 个答案:

答案 0 :(得分:1)

你应该用这个:

$( "target" ).on('keyup', function() {
    init();
});

您已经在init()编写了处理条件的完整代码。所以你只需要在keyup类的输入上的passwd事件上调用它。

检查plunkr“http://plnkr.co/edit/ZAvjJFkCnhRFgJj44zkJ”。在keyup事件中,可以执行某些功能。

答案 1 :(得分:0)

您可以使用以下代码执行此操作

$("input[type=text],select,textarea,input[type=password]").on('keyup blur change', function () { 
    $("input[type=text],textarea,input[type=password]").each(function(){
        if($(this).val().trim()=="")
        {
            $form.find('a.submit').addClass('disableClick');
        }
        else
        {
            $form.find('a.submit').addClass('disableClick');
        }
    });
});

更新小提琴

http://jsfiddle.net/Isakkiraj/xj9gzpqz/1/

答案 2 :(得分:0)

将一点“更改”更改为“keyup”。

$form.find(':input').keyup(function() {
     // same code
});

Working Demo

答案 3 :(得分:0)

试试这个keypressform submit

这个jquery

$('form').on('submit', function (e) {
e.preventDefault();
$('#print').toggle(!($('input.required').length == $('input.required').filter(

function () {
    return this.value;
}).length));
});
$( "#last_input" ).keypress(function() {
$('input[type="submit"]').removeAttr('disabled');
});

JSFIDDLE

答案 4 :(得分:0)

当你遇到任何输入为空白时,只需中断循环并禁用

    function init()
    {
        $form = $('#signupFrm'); // cache
        $form.find('a.submit').addClass('disableClick');

    $form.find(':input').change(function()
    { 
        // monitor all inputs for changes
        var disable = false;
        $form.find(':input').each(function(i, el)
        { 
            // test all inputs for values
            if ($.trim(el.value) === '')
            {
                disable = true; 
                    // disable submit if any of them are still blank
                return false; 
                    //if any of the input is blank just disable submit button
            }
        });
        if(disable == true)
        {
            $form.find('a.submit').addClass('disableClick');
        }
        else
        {
            $form.find('a.submit').removeClass('disableClick');
        }
    });
}