ajax向後臺傳遞引數-動態組織json串
阿新 • • 發佈:2019-02-18
ajax提交json格式的本質是提交了如下格式的引數:"&name=123&password=456",而且這種格式下,name和passowrd都可以是變數賦值,但是使用{“name”:value}格式的話,這裡的name是不能為變數的,只有value可以是變數。
1、index.jsp
<form action="<%=basePath%>register/register.action" method="post" id="formid"> 使用者名稱:<input type="text" name="userName" id="userName" class="mark"/><br /> <input type="submit" value="提交" /><br /> </form>
2、register.js
$(function(){ //我們不知道name或者id ,只通過class獲取元素的id和name以及value,動態獲取這些值的話,不能使用{變數:變數}提交,只能使用"&"+變數1+"="+變數2的形式,因為ajax僅支援 {"常量":變數}的json格式 $(".mark").blur(function(){checkUserName2(this)}); }); //提交表單的ajax function checkUserName2(theid){ //data="&"+id+"="+value是ajax的本質模式,這裡id是一個變數,比如 id="userName",等同於 data={userName:value}={'userName':value},二者 的區別是{}中的key不能為變數 //var data="&"+id+"="+value; var data=gainJson(theid); $.ajax({ url : "register/checkUserName.action",// 請求地址 //timeout : 600000,//超時時間設定,單位毫秒 async : false,// 非同步 cache : false,// 快取 type : 'post',// 請求方式 /*data: $('#formid').serialize(),//序列化表單*/ data:data, dataType : 'json',// 伺服器返回的資料型別 contentType:"application/x-www-form-urlencoded; charset=utf-8", success : function(msg) {// 請求成功後呼叫的 if(msg.result=="true"){ //去除非法提示 alert("true"); }else{ //增加非法提示 alert("false"); } }, error :function(){ alert("異常"); } }); }; //獲取id和值的公共方法,返回json格式 function gainJson(theid){ var id=$(theid).attr("id"); var value=$("#"+id+"").val(); var str="&"+id+"="+value; return str; }