2017-06-15 60 views
1

我想通過Ajax提交表單。我之前完成了它,但由於某種原因,無論何時單擊提交,它都會提交表單並刷新頁面。一旦提交按鈕被按下,我做了一個測試功能只是爲了控制檯日誌,但是這甚至不起作用。Form_Open始終提交 - 通過Ajax提交 - CodeIgniter

一旦我可以讓控制檯日誌工作而不刷新頁面,那麼我可以自己做Ajax,因爲我知道如何。

這是我的表單(請記住我只會在這裏發佈一個輸入,僅作爲示例)。

function submit_form(e) { 
    e.preventDefault(); 
    console.log('working'); 
    return false; 
}; 


    {!! form_open('myaccount/product_coupon/add',['id' => 'product_coupon_form', 'onsubmit'=> 'submit_form']) !!} 

Username <input type="text" name="username" class="form-control"> 

<input type="submit" class="btn btn-primary" id="submit"> 

</form> 

我也試圖在JavaScript調用它通過$('#submit').click(function()...但仍沒有采取任何行動

+0

檢查控制檯是否有JS錯誤? –

+0

如果你想使用ajax提交你的表單,那麼你不需要任何形式的#動作。你可以通過點擊按鈕來完成。 – kishor10d

+0

我厭倦了留下形式行爲爲「」,但仍然沒有任何提交。並且在控制檯日誌或成功中沒有錯誤。 – Gilbert

回答

1

1:確保您包括jQuery的

第二:包裝你的代碼$(document).ready(function(){ //code here })

3:您可以使用表格提交而不是提交按鈕點擊

$(document).ready(function(){ 
    $('#product_coupon_form').on('submit' , function(e){ 
      submit_form(e); 
    }) 
}); 
+0

它的工作原理!謝謝!你知道爲什麼我打電話時不工作嗎?爲什麼我需要在它之前調用文檔呢? – Gilbert

+1

@Gilbert閱讀https://stackoverflow.com/questions/6691454/why-wrap-code-into-document-ready和https://stackoverflow.com/questions/30894981/如何 - 重要 - 它是要包裝 - jquery代碼在文檔就緒函數..所有這一切的總結..是*的對象將不存在,因爲沒有加載DOM。*但用'$(document).ready(function(){'檢查文檔是先裝入的 –