※幫助方法
就是serialize和 serializeArrayserialize可將form變成字串的形式
serializeArray可將form變成name、value的形式,回傳JSON物件(不是JSON字串),
<form action="xxx/ooo" method="post"> 使用者: <input type="text" name="username" value="user" /><br /> 密碼: <input type="password" name="password" value="pass" /><br /> <input type="radio" name="ra" value="r1" /> <input type="radio" name="ra" value="r2" /> <input type="radio" name="ra" value="r3" checked="checked" /><br /> <input type="checkbox" name="ch" value="c1" checked="checked" /> <input type="checkbox" name="ch" value="c2" checked="checked" /> <input type="checkbox" name="ch" value="c3" /><br /> <select name="se"> <option>s1</option> <option selected="selected">s2</option> <option>s3</option> </select> <br /> <input type="button" value="serialize" onclick="serialize()" /><br /> <input type="button" value="serializeArray" onclick="serializeArray()" /><br /> </form> <span id="span1"></span><br /> <span id="span2"></span> ----- $(function(){ $('#span1').text($("form").serialize()); console.log($("form").serialize()); // username=user&password=pass&ra=r3&ch=c1&ch=c2&se=s2 $('#span2').text($("form").serializeArray()); console.log($("form").serializeArray()); // [Object, Object, Object, Object, Object, Object] $.each($("form").serializeArray(), function(i, f){ console.log("name=" + f.name); console.log("value=" + f.value); }); });
因為serializeArray印出來是Object,所以可以用$.each印出來
官網連結
※全域Ajax事件處理器
目前共6種由上往下執行,ajaxError、ajaxSuccess只會執行其中之一,global設false不會執行
.ajaxStart():一開始就會執行
.ajaxSend():開始發送會執行
.ajaxError():失敗時執行
.ajaxSuccess():成功時執行
.ajaxComplete():完成時執行
.ajaxStop():結束執行
var ajaxTest = function(){ $.ajax({ url : "xxx", type : "POST", // dataType: 'abc', data : $.param({ username: $('input[name="username"]').val(), password: 'p' }), success : function(data, textStatus, jqXHR){ console.log('data=' + data); console.log('textStatus=' + textStatus); } }); } function setGlobalFalse(){ $.ajaxSetup({ global : false }); } $(document).ajaxStart(function() { alert('start'); }); $(document).ajaxSend(function() { alert('send'); }); $(document).ajaxError(function() { alert('error'); }); $(document).ajaxSuccess(function() { alert('success'); }); $(document).ajaxComplete(function() { alert('complete'); }); $(document).ajaxStop(function() { alert('stop'); }); ---------- <h3>${success}</h3> <form action="xxx/ooo" method="post"> 使用者: <input type="text" name="username" value="user" /><br /> 密碼: <input type="password" name="password" value="pass" /><br /> <input type="submit" /> </form> <input onclick="ajaxTest()" type="button" value="test" /> <input onclick="setGlobalFalse()" type="button" value="globalFalse" />
※這範例是成功的,所以ajaxSuccess會跳出來;將dataType打開會失敗,所以ajaxError跳出來
※將globalFalse的按鈕按下後,都不會觸發了
※注意官網有說版本的問題,我沒有測
沒有留言:
張貼留言