【问题标题】:How can I validate and submit a form with jQuery if submit button has the name submit?如果提交按钮的名称为提交,我如何使用 jQuery 验证和提交表单?
【发布时间】:2017-09-07 01:11:58
【问题描述】:

我在控制台“Uncaught TypeError: form.submit is not a function”中有这个错误

输入按钮:<input id="submit" class="button_text" type="submit" name="submit" value="Submit"/>

我发现很多解决方案都说不应该提交名称。我曾尝试更改名称,但即使有错误,表单验证也无法在表单提交和提交表单上工作。可能是什么问题?

jQuery:

$("#submit").click(function() {
    form.target="_self";
    form.action="submit.php";
    form.submit();
});

$('#form').validate({
    submitHandler: function(form) {
        $.ajax({
        url: form.action,
        type: form.method,
        data: form.serialize(),
        success: function(response) {
            if (response == false)
            {alert('could not submit!')}
        }

        });

    }
});

更新: 如果表单经过验证并成功提交,我想禁用提交按钮,但如果我这样添加它会禁用提交按钮而不提交表单。

$('#submit').on('click', function() {
            $('#form').attr('action', 'submit.php');
            $('#form').submit();
        });
        $("#form").submit(function(e){
            if ($(this).valid()) {
                $("#submit").attr("disabled", true);
                $("#preview").attr("disabled", true);
                return true;
            }else{
                e.preventDefault();
            }
        });

【问题讨论】:

  • 您尚未在提交点击中为form 声明任何内容,也许您需要document.form
  • @Se0ng11 我不明白吗?
  • form.target,应该是document.form.target?这将转到点击事件中的所有表单
  • 更改提交按钮的名称不应该对验证产生任何影响。如果是,您需要找出原因并修复它。也许您的验证代码正在寻找该名称,您需要使其使用新名称。

标签: jquery html forms


【解决方案1】:

这样试试

$("#submit").click(function() {
  $('#formId').attr('action', 'submit.php');
  $('#formId').attr('target', '_self');
  $('#formId').submit();

});

更新

        if ($("#form_id").valid()) {
            $("#form_id").submit();
            $("#submit").attr("disabled", true);
            $("#preview").attr("disabled", true);

        }else{
           return false;
        }

做这样的事情。它可能会给你一些想法。首先验证表单,然后提交

【讨论】:

  • 错误消失了,但现在无法提交表单:(
  • 尝试删除目标属性
  • 您的解决方案有效,但我需要有关此问题的更多帮助。我正在更新问题,请检查。
  • 无效的表单在点击时得到验证,这就是它禁用按钮的原因,但为什么它首先不提交然后禁用按钮
【解决方案2】:

试试这个

$('#submit').on('click', function() { 
   /* your code here */
 });

【讨论】:

  • 仍然得到这个 Uncaught TypeError: form.submit is not a function
  • 是的,您可以验证
  • 仍然收到错误表单。提交不是函数
【解决方案3】:

你可以这样试试吗:

<script type="text/javascript">
    $(document).ready(function () {
        $("#submit").click(function (e) {
            e.preventDefault();

            var form = $("#form");

            $.ajax({
                url: form.action,
                type: form.method,
                data: form.serialize(),
                success: function (response) {
                    if (response == false) {
                        alert('could not submit!')
                    }
                    else {
                        //form.target = "_self";
                        //form.action = "submit.php";
                        form.submit();
                    }
                }
            });

            return false;
        });
    });
</script>

<form id="form" action="test.html" method="POST">
    <input type="text" value="" id="test" name="test" />
    <input id="submit" class="button_text" type="submit" name="submit" value="Submit" />
</form>

【讨论】:

  • 点击提交时控制台中仍然出现此错误 Uncaught TypeError: form.submit is not a function
  • @Haroon 你能用你已经实现的 HTML 更新你的问题吗?对我来说,form.submit() 没有错误。
猜你喜欢
  • 2012-10-02
  • 2014-10-31
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多