jquery submit()不能提交表单的解决方法

今天写表单提交的时候需要增加一个确认提示,所以没有使用submit按钮提交,改用jq的submit(),然后问题了

<form class="form-horizontal m-t" method="post" action="@Url.Action("Edit")" id="form">
        <div class="row">
            <div class="col-sm-12">
                <div class="ibox float-e-margins">
                    <div class="ibox-title">
                        <h5>添加</h5>
                    </div>
                    <div class="ibox-content">
                        <div class="form-group">
                            <label class="col-sm-3 control-label">开始时间:</label>
                            <div class="col-sm-8">
                                <span>
                                    @(Model.annualRate_beginDate?.ToString("yyyy-MM-dd"))
                                </span>
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">结束时间:</label>
                            <div class="col-sm-8">
                                <input type="text" class="form-control" name="annualRate_endDate" id="annualRate_endDate" onclick="laydate({ istime: false, format: ‘YYYY-MM-DD‘ })" value="@Model.annualRate_endDate.ToString("yyyy-MM-dd")" required>
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">年利息%:</label>
                            <div class="col-sm-8">
                                <input type="number" step="0.01" class="form-control" id="annualRate_rate" name="annualRate_rate" value="@Model.annualRate_rate.ToString("#0.00")" required>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-4 col-sm-offset-2">
                                <button class="btn btn-lg btn-primary" id="submit_btn" type="button">
                                    提交
                                </button>

                                <a class="btn btn-lg btn-white" href="@Url.Action("Index")">
                                    取消
                                </a>
                            </div>
                        </div>
                    </div>
                </div>

            </div>
        </div>
    </form>
 1 <script type="text/javascript">
 2     $(function () {
 3         $("#submit").click(function () {
 4             var start = ‘@(Model.annualRate_beginDate?.ToString("yyyy-MM-dd"))‘;
 5             var end = $("#annualRate_endDate").val();
 6             var val = $("#annualRate_rate").val();
 7             layer.confirm(‘请确认所填写的信息是否正确?<br/>开始时间:‘ + start + ‘<br/>结束时间:‘ + end + ‘<br/>年利率:‘ + val, { icon: 3, title: ‘提示‘ }, function (index) {
 8                 $("#form").submit();
 9                 layer.close(index);
10             });
11         });
12     })
13 </script>

点击提交按钮出现确认提示,但是确认后就没反应了

但是将button的type改为submit却又能提交

于是上jQuery API查找原因,看到以下这段文字顿时明白了:

Additional Notes:

Forms and their child elements should not use input names or ids that conflict with properties of a form, such as submitlength, or method. Name conflicts can cause confusing failures. For a complete list of rules and to check your markup for these problems, see DOMLint.

大概意思是表单和其子元素不宜用一个表单的属性的属性作为name或id的名称,如submit, length, 和 method等,否则会产生冲突,名称冲突可能就会导致这种情况。

原来是因为按钮id设为了submit

接下来只要将id改了就没问题了

时间: 2024-08-24 15:19:26

jquery submit()不能提交表单的解决方法的相关文章

Jquery ajax提交表单几种方法详解

[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程 HTTP 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方

基于jQuery商品分类选择提交表单代码

分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览   源码下载 实现的代码: <div class="yListr"> <form> <ul> <li><span>颜色</span> <em class="yListrclickem">深灰色<i></i></em> <e

jQuery之ajaxForm提交表单

1.jQuery的设计非常优雅,其源代码亦给人以美感,利用jQuery框架写出来的js既简练又能完美跨浏览器.   2.jquery form插件是基于jQuery开发的一套能够利用ajax技术提交form的框架.   3.无论是jQuery,还是jquery form 都是老外写的.   4.通常的jQuery ajax提交写法如下:   5. $.post("../user/user.do?d=checkPasswordOnUpdateByAjax",{old_password:o

调用submit()方式提交表单

今天在看高级程序设计时看到的这样一段话: 在以调用submit()方法的形式提交表单时,不会触发submit事件 写了一个小例子做了下测试,的确如此: <form id="fm" action="http://www.baidu.com"> <input type="text" id="txt"> <button id="btn" type="submit"

JQuery禁止回车提交表单

//禁止回车键提交表单——动态绑定 $(function(){ $("input").on('keypress',  //所有input标签回车无效,当然,可以根据需求自定义 function(e){ var key = window.event ? e.keyCode : e.which; if(key.toString() == "13"){ return false; } } ); });

jQuery mobile 学习12 表单的使用方法及访问设备判断

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

基于SpringMVC与jquery的ajax提交表单的若干情况详解

在日常的业务中,我们往往使用的是ajax提交页面数据,而不用form的action来提交整个表单.现在我来分享一下我在日常工作中遇到的一些问题. 一.$.post.$.get.$.ajax三者的区别: 顾名思义,$.post和$.get分别是采用post方式和get方式向服务器发送请求.两者的不同是,get请求的参数是在url直接以url?name1=value1&name2=value2的形式拼接而成,而post请求的参数会以请求正文的形式传送到服务器,这个学习过javaweb知识的应该都知道

使用jquery.form.js提交表单上传文件

方法: 1.formSerilize()  用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式. 2.clearForm()   清除表单中所有输入值的内容. 3.restForm    重置表单中所有的字段内容.即将所有表单中的字段恢复到页面加载时的默认值. 疑问:ajaxForm()与ajaxSubmit()的区别: 答案:$("#form1").ajaxForm();  相当于以下两行: 1 2 3 4 $("#form1".subm

利用jquery进行ajax提交表单和附带的数据

1.获取表单数据: $form.serialize() 2.附带数据:input[status]=1 3.构造url链接:url = $form.attr('action') + '?input[status]=1' 3.ajax提交:$.post(url, post_data, function(res){xxx}, 'json'); 4.后台php接收 $_REQUEST['input'];(input是一个数组存放提交的所有数据)