js表单提交和submit提交的区别

JavaScript014

js表单提交和submit提交的区别,第1张

js表单提交和submit提交的区别如下:

js提交表单时不会会带上按钮的参数传递到服务端。

而submit按钮提交的时候会把button上的name和value一起作为请求参数传递到服务端。

举例说明:

<form id="myfrom">

<input type="submit" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />

</form>

这里提交的时候会把参数名Mylist和参数值Send传到目标地址

<form id="myfrom">

<input type="button" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" /> 

</form>

提交的脚本:

function doMySubmit() {

           var myform = document.getElementById('searchFilterForm')

           myform.myfield.value = "Hello World"

           myform.submit()

       }  

这种情况下不会把button的参数带给服务端。

document.querySelector("#btnAjax").onclick = function () {

        var ajax = new XMLHttpRequest()

        // 使用post请求

        ajax.open('post','ajax_post.php')

        // 如果 使用post发送数据 必须 设置 如下内容

        // 修改了 发送给 服务器的 请求报文的 内容

        // 如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

        ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded")

        // 发送

        // post请求 发送的数据 写在 send方法中

        // 格式 name=jack&age=18 字符串的格式

        ajax.send('name=jack&age=998')

        // 注册事件

        ajax.onreadystatechange = function () {

            if (ajax.readyState==4&&ajax.status==200) {

                console.log(ajax.responseText)

            }

        }

    }

这个要看你是什么时候调用的

重复提交有二种可能

1、你的提交写在了一个循环里面,一旦失败会重新执行这个循环提交

2、你代码里面的提交可能放在了类似于setTimtOut()这种时间事件函数里,他是会隔断时间就执行一次的。

如果浏览器访问成功,JS提交不成功,可以试着换种提交的方式, 不用submit提交 ,用ajax试试看能不能跑通

最后,检查你提交的路径是否有误,比如,放在其它包里,要跳出该包,需要在url前加../