关于ajax提交表单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ajax提交表单相关的知识,希望对你有一定的参考价值。
今天主要是四个问题:
1.表单页面元素的获取;
2.按钮的值的获取;
3.按钮的值以变量提交;
4.表单的提交;
- 获取表单元素时用的是事件委托的方法。{犯的错误:1、用获取表格父级元素的方法获取,没有意识到表单的值是填在value里面的,而表格里面的值直接在th容器里填的 2、在考虑父级元素时没有考虑到它所有的容器都属于他的父级元素 3、在获取子元素时,没有意识到childnode是一个数组,当子元素含有多个子级时,每一个子级都有一级对应childnode[?]
- 获取按钮的值的代码,首先每个按钮都有自己对应的value,将从后台获得的值附给对应的按钮是它处于选中状态。
var radiovar = document.getElementsByName("sex"); if (radiovar[0].value=== node.childNodes[2].innerhtml ) { radiovar[0].checked="checked"; } if (radiovar[1].value===node.childNodes[2].innerHTML ) { radiovar[1].checked="checked"; }
3.然后将表单上的值取出来,又传给后端。
var scct =‘‘; if(node.childNodes[2].childNodes[0].childNodes[0].checked===true){ scct=‘M‘; } else if(node.childNodes[2].childNodes[0].childNodes[0].checked===false){ scct=‘F‘; }
4.表单的提交,开始用的是
this.location = "../requests/myPhotographers/dropPhotographer.php?account=" + act + "";
的方法,发现判断它返回值的函数不能使用,是因为此方法会使页面跳转,所以使用ajax提交表单的方法提交
if (fcStart === 0) { $(‘#usemf‘).on(‘submit‘, function (e) { // document.getElementById("aaa").innerHTML = ‘aaaaa‘;//when form submit // alert(‘submit!‘); e.preventDefault(); //prevent it being sent var details = $(‘#usemf‘).serialize(); //serialize from data }); var uem = new XMLHttpRequest(); uem.onload = function() { if (uem.status === 200) { var newLoad = ""; // var returnDataP = "error:Authentication Failed For RDS maybe username or password is incorrect"; // var returnDataA = "error:Access denied for user ‘gty‘@‘localhost‘ (using password: YES)"; // var returnDataN = "error:user not exist"; //定义匹配信息 var patt1=new RegExp("error:You do not have permission to modify the photographer!"); var patt2=new RegExp("The modification is successful!"); if (patt1.test(uem.responseText)){ //如果返回数据为error。。,则弹出没有权限 newLoad = "<div class=\"alert alert-block\" > <button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> <h2>sorry!</h2> <h4>您没有修改权限!</h4></div>"; setTimeout(dute,500) } if (patt2.test(uem.responseText)){ //如果返回数据包含successful,则弹出修改成功 newLoad = "<div class=\"alert alert-success\" > <button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> <h2>congratulation!</h2> <h4>修改摄影师成功!</h4></div>"; setTimeout(dute,500) } } document.getElementById("usemf").innerHTML = newLoad; }; uem.open("get", "../requests/myPhotographers/modifyPhotographer2.php?account="+ncct+"&name="+acct+"&sex="+scct+ "" +"&phoneNumber="+pcct+"&email="+ecct+"", true); uem.send(); }
此方法不仅可以阻止页面跳转,还可以将数据以get的方式发送。
以上是关于关于ajax提交表单的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ajax jQuery 提交 Django 表单的简单方法
如何使用没有 jQuery 但纯 Javascript 的 AJAX 提交此表单
使用JQuery的.ajax()提交表单后当前页面表单内容被清空,请问如何保留数据?
向后台提交数据:通过form表单提交数据需刷新网页 但通过Ajax提交数据不用刷新网页可通过原生态Ajax或jqueryAjax。Ajax代码部分