簡體   English   中英

Ajax表單提交不起作用

[英]ajax form submit not working

我正在使用jquery.form.js(版本:2.84),在下面的代碼中,我看到它在$('imageform')。ajaxSubmit之前卡住了。如果刪除了preventDefault,則該表單將照常提交,並且頁面刷新。 當preventDefault存在時,我會看到loader.gif,但是在服務器端我看不到任何數據,並且永遠不會觸發警報。

google.maps.event.addDomListener($('photoimg'), 'change', function(e){
            e.preventDefault(); // <-- important
            $("preview").innerHTML = ("<img src=\"loader.gif\" alt=\"Uploading....\"></img>");
            $('imageform').ajaxSubmit({
                target: 'preview'
            });
            alert('after submit');
        });

我也使用如下函數,這就是為什么我使用$('imageform')而不是$('#imageform')...

function $(element) {
  return document.getElementById(element);
}

不,因為您已經用getElementById函數覆蓋了$

$('imageform').ajaxSubmit

將在需要jQuery對象的DOM元素上執行ajaxSubmit 您需要刪除$或使用:

jQuery('#imageform').ajaxSubmit

$("#foo")document.getElementById("foo")

  • jQuery函數返回一個jQuery對象,其中包含所有jQuery函數,例如.bind.ajaxSubmit

  • 另一方面, document.getElementById返回沒有jQuery任何功能的裸DOM元素。

jQuery對象就像是DOM元素數組,因此:

$("#foo")[0] === document.getElementById("foo")

您的$函數正在破壞jQuery相同變量的含義。 您可能會在jQuery中遇到很多兼容性問題,或者采取簡單的方法:將$函數重命名$其他名稱,或者直接調用document.getElementById() ,因為您的函數只會使您不必鍵入該調用。 或者,更好的是,使用jQuery來處理該調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM