2014-03-05 85 views
1

,這是我的HTML表單jQuery的AJAX表單提交不工作

<form id="contactForm1" method="POST" action="downloadfile"> 
    <input id="tesst" name="tesst" type="hidden" value="<?php echo $val['file_name'];?>"/> 
    <div id="download" class="btn btn-danger">Download</div> 
</form> 

這裏是jQuery函數

var frm = $('#contactForm1'); 
       frm.submit(function(ev) { 
       $.ajax({ 
        type: frm.attr('method'), 
        url: frm.attr('action'), 
        data: frm.serialize(), 
        success: function(data) { 
         alert('ok'); 
        } 
        }); 
       ev.preventDefault(); 
       }); 

我不知道很多關於jQuery的。

請有人可以幫助我呢?

謝謝。

+3

它錯過了'輸入submit'按鈕/你必須使用click事件,而不是submit' frm.submit'到'$( '#下載')。click' – Spokey

+0

它也有錯的形式行動 –

+0

@Spokey - 謝謝。我添加一個提交按鈕,它的作品。但我也嘗試另一種方式。但它沒有發佈這種形式。 這是jQuery代碼 $( '#下載')點擊(函數(EV){$ 阿賈克斯({ 類型:frm.attr( '方法'), 網址:frm.attr(」動作 '), 數據:frm.serialize(), 成功:功能(數據){ 警報(' OK'); } }); ev.preventDefault(); }); – Yasitha

回答

1

有2種方法來解決你的問題

  1. 你改變div(下載按鈕)到input submit按鈕,並留下您的腳本,因爲它是
  2. 您更改功能時運行div被點擊,而不是在提交事件被觸發時(原因是提交僅由提交按鈕觸發)

例如:http://jsfiddle.net/Spokey/bNa7d/

var frm = $('#contactForm1'); 
$('#download').click(function (ev) { 
    $.ajax({ 
     type: frm.attr('method'), 
     url: frm.attr('action'), 
     data: frm.serialize(), 
     success: function (data) { 
      alert('ok' + data); 
     } 
    }); 
}); 
1

兩件事情

  • 您需要添加input提交元素表單

  • 變化action="downloadfile"action="downloadfile.php",如果你的downloadfile.php是同一個目錄與當前的HTML文件。