如何使用jqueryvalidation对提交进行确认?

时间:2015-04-30 10:00:53

标签: jquery forms validation user-experience

我尝试使用此库进行简单验证,使用是/否提交http://www.runningcoder.org/jqueryvalidation

HTML:

<form id="form" name="form" method="POST">
    <label>
        A
        <input name="a" type="text" data-validation="[NOTEMPTY]">
    </label>
    <label>
        B
        <input name="b" type="text" data-validation="[NOTEMPTY]">
    </label>
 <button id="submit" type="submit">Save</button>
                        </form>
                    <div id="evaluationConfirm" style="display:none" >
                        Are you sure?
                        <button id="submitConfirmFail">no</button>
                        <button id="submitConfirmOk">yes</button>
                    </div>

JS:

var myNode=null;
$(function () {
    $('form#form').validate({
        debug: true,
        submit: {
            callback: {
                onBeforeSubmit: function (node) {
                    $('button#submit').hide();
                    $('#evaluationConfirm').show();
                    myNode=node;
                },
                onSubmit: function (node) {
                }
            }
        }
    });


    $('#submitConfirmFail').click(function () {
        $('button#submit').show();
        $('#evaluationConfirm').hide();
    });
    $('#submitConfirmOk').click(function () {
        myNode[0].submit();
    });
});

这是我的代码https://jsfiddle.net/vxv54qca/1/

如果我不使用jquery show / hide功能,那么一切顺利。

如果我在调用form.submit()时显示/隐藏提交按钮,我会得到错误:

&#34;未捕获TypeError:myNode [0] .submit不是函数&#34;

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

myNode可能为null / undefined。

将点击事件中的实施更改为:

$('#submitConfirmOk').click(function () {
    $('form#form').submit();
});