ajax成功后停止自动重新加载

时间:2013-07-16 09:14:36

标签: jquery ajax

我在扫描条形码后设置了我的页面,它将分成两个自动完成。然后Ajax将数据发送到数据库以获得一些结果,在获得结果后它将发送到自动完成值。

我的问题来了,数据分开后我的页面变成了自动重载,为什么?

$("#model").change(function() {
         var barcode;
         barCode=$("#model").val();
         var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();
         var data2 = $("#serial").val(barCode.substr(barCode.length-8,8)).val();

         $.ajax({
                 type:"post",
                 url:"process2.php",
                 data:"model="+data1+"&serial="+data2+"&action=checkdata",
                 cache:false,
                 async:false,
                 success: function(res){
                         $('#lotno').attr("value",res);
                         return false;
                         }
                 });

         return false;
         });

过程2:

switch(postVar('action')) {
        /*check data*/
        case 'checkdata' :
                checkdata(postVar('model'),postVar('serial'));
                break;
}
function checkdata($model,$serial){
        $Mod = mysql_real_escape_string($model);
        $Ser = mysql_real_escape_string($serial);
        $Mod=strtoupper($Mod);
        $Ser=strtoupper($Ser);

        $sql="SELECT lotno
                FROM dataserial
                WHERE model='".$Mod."' AND startserial <= '".$Ser."' AND endserial >= '".$Ser."'";
        ob_clean();
        $res=mysql_query($sql) or die(_ERROR26.": ".mysql_error());

        $dat=mysql_fetch_array($res,MYSQL_NUM);
        if(mysql_affected_rows()>0) {
                        echo $dat[0];
                        } else {
                        echo "No specified data";
        }
        };

我在这个页面中有一些javascript: settingpage

2 个答案:

答案 0 :(得分:0)

页面process2.php是否与ajax相同?如果是,那么你需要的是jQuery event.preventDefault

$("#model").change(function(e) {

     e.preventDefault();

     var barcode;
     barCode=$("#model").val();
     var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();
     var data2 = $("#serial").val(barCode.substr(barCode.length-8,8)).val();

     $.ajax({
             type:"post",
             url:"process2.php",
             data:"model="+data1+"&serial="+data2+"&action=checkdata",
             cache:false,
             async:false,
             success: function(res){

                     $('#lotno').attr("value",res);

                     //return false;

             }
     });

     //return false;

     });

答案 1 :(得分:0)

这个问题解决了。 它是由提交按钮(来自下载的表单模板)引起的。

之前:

<button id="registerButton" type="button" class="submit"><span>Submit </span></button>

之后:

<button id="registerButton" type="button" class="ui-state-default ui-corner-all"><span>Submit </span></button>

更改后,它正常工作。我不知道为什么?可能有人可以稍后解释。