2011-02-27 88 views
0

嘿傢伙我試圖在最終用戶點擊提交 密鑰時更新div元素。簡單的div更新與jquery&ajax

所以我有這樣的代碼:

 <div class="duruGetPhone"> <input type="submit" name="upload" value="submit" class="something" /> </div> 
     <script> 
     $(document).ready(function() { 
      $('input.something').click(function(e) { 
       e.preventDefault(); 
       $('div.duruGetPhone').load('loadImage.php', {param1: '<?php echo $Hood; ?>', param2: '<?php echo $Id; ?>'}); 
      }); 
     }); 
     </script> 

,如果我使用的一個標籤或「跨度」,但對於輸入不工作也能正常工作。 它實際上更新了div,但沒有執行提交。如果我 不使用「preventDefault」然後沒有任何反應。有人可以對這個問題有所瞭解嗎?

+0

你是什麼意思進行提交但更新div?提交被阻止,只有更新div將被執行或更新將被執行,但你不會看到它,因爲未被阻止的提交會刷新頁面? – Luke 2011-02-27 23:33:18

+0

對於Luke和kim3er:我希望提交按鈕得到更新的原因是因爲用戶提交的圖像需要很長時間才能退出,我希望提交按鈕在圖像加載時消失 – Tom 2011-02-28 00:07:20

回答

1

假設您的示例被封裝在窗體標籤中,我有一個可能的解釋。

如果沒有preventDefault,點擊事件處理程序會被觸發,但會被髮布到服務器的表單截斷,所以load函數永遠不會完成。

隨着preventDefault,點擊事件處理程序觸發並獲得成功結論。但是,默認行爲(表單提交)已被禁用。

爲什麼你想要表單回發到服務器除了點擊事件?我誤解了一些東西嗎?

如果你想點擊觸發事件,作爲一個成功的表單提交的結果,我會調查插件http://jquery.malsup.com/form/控制異步使用ajaxSubmitajaxForm回發的使用jQuery的表格。

0

如果我知道你想正確的內容(提交表單,放在DIV響應,並禁用按鈕,而這一切都發生的事情)我會使用上面提到的表格插件:

http://jquery.malsup.com/form/

...,做這樣的事情(未經測試,但應該是在球場):

<script> 
$(document).ready(function() { 
    $("#myform").ajaxForm({ 
     target: "div.duruGetPhone", 
     beforeSubmit: function(responseText, statusText) { 
     $("input.something").disable(); 
     } 
    }); 
}); 
</script> 

<form id="myform" method="post" action="loadImage.php"> 
    <input type="hidden" name="param1" value="<?php echo $Hood; ?>"/> 
    <input type="hidden" name="param1" value="<?php echo $Id; ?>"/> 
    <div class="duruGetPhone"> 
     <input type="submit" name="upload" value="submit" class="something" /> 
    </div> 
</form> 

然後loadImage.php只需要返回你想要插入duruGetPhone IMG標記。