日期:2014-05-16  浏览次数:20728 次

jquery 的执行顺序
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();
      }
      });
      });