2014-03-18 62 views
0

我在Google Chrome上使用ajax時有此消息event.returnValue已棄用。請使用標準event.preventDefault()代替 我安裝了新的G.Chrome和新的jQuery庫,但沒有生效。 而我的代碼在Mozilla Firefox中運行良好。 我有jQuery代碼文件 - edit.php和操作文件editting.php edit.php的 代碼:請幫忙! - event.returnValue已棄用。請使用標準event.preventDefault()代替

$('#submit').click(function(){ 
     //if(this.value == "apl") 
     var id = $("#inf_id").val(); 
     var text = $("#text").val(); 
     var title = $("#title").val(); 
     $("#imgLoad").show(); // Показываем прелоадер 

     //setTimeout('$("#imgLoad").show()', 1000); 
     $.ajax({ 
       url: "editting.php", 
       type: "POST", 
       data: {"inf_id": id,"title": title,"text":text}, 
       cache: false, 
       success: function(response){ 
       //////////////////////////// 
    alert(response);    
       ////////////////////////////// 
      if(response == 0){ // Смотрим ответ от сервера и выполняем соответствующее действие 
       //alert("Больше нет записей"); 
       $("#imgLoad").hide(); 
       $("#success_div").show(); 
       $("#alert_div").hide(); 
       $("#empty_infs_div").hide();      
       setTimeout('$("#success_div").hide();', 2000); 

       $("#empty_text").hide(); 
       $("#empty_title").hide();         
      }else if(response == 1){ 
       $("#imgLoad").hide(); 
       $("#success_div").hide(); 
       $("#alert_div").show(); 
       $("#empty_infs_div").hide(); 
       setTimeout('$("#alert_div").hide();', 2000);  

       $("#empty_text").hide(); 
       $("#empty_title").hide(); 
      } /*else if(response == 2){ 
       $("#imgLoad").hide(); 
       $("#success_div").hide(); 
       $("#empty_infs_div").show(); 
       $("#alert_div").hide();       
       setTimeout('$("#empty_infs_div").hide();', 2000); 
      }*/ 

      else if(response == 2 || response == '2'){ 
       $("#empty_text").hide(); 
       $("#empty_title").show(); 

       $("#imgLoad").hide(); 
       $("#success_div").hide(); 
       $("#empty_infs_div").hide(); 
       $("#alert_div").hide(); 
       setTimeout('$("#empty_title").hide();', 2000); 
       } 
      else if(response == 3){ //if(response == 4)  
       $("#empty_text").show(); 
       $("#empty_title").hide(); 

       $("#imgLoad").hide(); 
       $("#success_div").hide(); 
       $("#empty_infs_div").hide(); 
       $("#alert_div").hide(); 
       setTimeout('$("#empty_text").hide();', 2000); 
       } 

      }//success 
      }); 

     }); 

和editting.php:

   <? 
      include("site_blocks/bd.php"); 
      if (isset($_REQUEST['inf_id'])) {$id = $_REQUEST['inf_id']; 
      if ($id == '') {unset($id);}} 

      if (isset($_REQUEST['title'])){$title = $_REQUEST['title']; 
      if ($title == '') {unset($title);}} 

      if (isset($_REQUEST['text'])) {$text = $_REQUEST['text']; 
      if ($text == '' || $text == '<br>') {unset($text);}} 

      if (isset($title) && isset($text)) 
      { 
       mysql_query('SET NAMES utf8');ob_clean(); 
       $update_infs = mysql_query ("UPDATE data SET title='$title',text='$text' WHERE id='$id'");  

       if($update_infs==1) {sleep(1); echo 0;} 
       else {sleep(1); echo 1; } 
      } 

      else 
      {sleep(1); 
      if (!isset($title)) {echo 2;} 
      else if(!isset($text)) {echo 3;} 
      } 

      ?> 

Alert是作品,表演我結果0,1,2,3。但瀏覽器Chrome並沒有對這個數字做出反應。 Mozilla的反應和我預期的一樣。 任何人都可以幫助我,請)?非常感謝))

+0

這是不是一個錯誤,這是一個警告,它是由jQuery的產生,你可以忽略它。它不影響你的代碼。爲了讓它消失,更新的jQuery。 –

+0

我建議你調試在Chrome控制檯中的代碼,並一步執行步驟,檢查是否變量有你期望的值。 –

回答

1

event.returnValue已被取消。請使用標準event.preventDefault()

只是一個警告(請參閱here),它應該在Chrome和Firefox中工作! 如果無法在Chrome中工作,你應該檢查你的代碼: 例如:

setTimeout('$("#success_div").hide();', 2000); 

應改爲

setTimeout($("#success_div").hide(), 2000); 

的setTimeout(第一個參數)應該是一個函數(見here) ,而不是一個字符串

[編輯]修正分號剩餘

我檢查了您的js代碼jslint有兩個主要的錯誤,上面的一個setTimeout「隱含的eval是邪惡的。傳遞一個函數,而不是一個字符串。」和一個錯誤與您的條件

Expected '===' and instead saw '=='. 
line 32 character 33: } else if (response == 1) { 

但是這一次不應該讓代碼不工作

+1

你的第二個代碼片段會立即隱藏,而不是2秒後 –

+0

它應該是'的setTimeout($(「#success_div」)隱藏,2000);' – user2610529

+0

好耶:d forgott的SEM icollon - D'oh – Soraphis

相關問題