- HTML code
<script type="text/javascript"> $(document).ready(function(){ $("#apple").click(function(event){ var s=$("#ppp").val(); if(s!=''){ $.post("UserVerify?rand="+Math.rand,{a:s},function(data){ $("#maple").html(data); }); alert( $("#maple").html()); event.preventDefault(); //return false; }else { alert("请输入"); event.preventDefault(); } }); }); </script> </head> <body> <form action="shiyan" method="post"> <input type="text" id="ppp"> <span id="maple"></span> <input type="submit" value="点击" id="apple"> </form> </body> </html>
jquery 里post 方法提交的servlet 只返回一个字符串,为什么我第一次点击弹alert是空啊,求解释,再点击一次就弹出servlet的返回的字符串。
------解决方案--------------------
ajax是异步执行的啊,ajax没返回就已经执行 alert( $("#maple").html());这句了,要获得maple的内容,要放到回调函数里面,或者将ajax设置为同步的
- JScript code
$(document).ready(function(){ $("#apple").click(function(event){ var s=$("#ppp").val(); if(s!=''){ $.post("UserVerify?rand="+Math.rand,{a:s},function(data){ $("#maple").html(data); alert( $("#maple").html());/////////// }); //alert( $("#maple").html());//ajax还没有返回都已经执行这句了,当然为空了,第二次的话已经有第一次的结果了,输出当然不为空 event.preventDefault(); //return false; }else { alert("请输入"); event.preventDefault(); } }); });