2013-08-23 120 views
1

我試圖從位於我的導航欄中的鏈接提交表單。使用jQuery從表單提交表單

我是新來javascript.jQuery和不確定爲什麼這不會執行。

我有一種感覺,我需要把其他東西放在鏈接的href,但我不知道它是什麼?我很欣賞這些反饋和專業知識。

LINK

<li><a href="#" id="add-product-save-link"><i class="icon-plus"></i> Save</a></li> 

FORM

<form class="form" action="" method="post" id="add-product-form"> 

JAVASCRIPT(此代碼在外部獨立的文件我已經鏈接到模板)

$(document).ready(function() { 
    $('#add-product-save-link').click(function(e) { 
     e.preventDefault(); 
     $('#add-product-form').submit(); 
    }); 
}); 

我已鏈接到與jQuery的:

+0

你有什麼調試?嘗試把'代碼alert'或'console.log'?您是否獲得在控制檯中的任何錯誤?看來究竟是不是工作 – SmokeyPHP

+0

的$(文件).ready正在執行,但我沒有執行$('#add-product-save-link')中的代碼。click(function(e){ – bbrooke

回答

12

:假如你不是HTML更改爲工作,你應該使用這個。(http://jsfiddle.net/4enf7/

<a href="javascript:document.getElementById('add-product-form').submit();">Send form</a> 
+0

這工作得很好!不知道爲什麼我不能以其他方式執行。感謝您的反饋。 – bbrooke

7

Li NK:

<a href="#" id="add-product-save-link" class="icon-plus" ><i>Save</i></a> 

的jQuery:

$(document).ready(function() { 
    $('#add-product-save-link').click(function() { 
     $('#add-product-form').submit(); 
    }); 
}); 

你不需要e.preventDefault(),因爲你的錨標記不會去任何地方(在href是#)。

因爲您的<form>標記的操作屬性是空白的,這意味着表單將自己提交給同一個文檔。如果這是你想做的事,那麼你就可以把邏輯,在你的文件的頂部:

<?php 
    if (isset($_POST)) { 
     //do your form processing here 
    }else{ 
     //your normal page is here. 
    } 
?> 

最後,因爲這個答案使用jQuery的,請確保您引用了jQuery庫的地方,如在<head>標籤:

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    </head> 
2

你點擊在 「A」,而不是在斜體(帶ID)。在純JavaScript

$(document).ready(function() { 
    $('#add-product-save-link').parent().click(function(e) { 
     $('#add-product-form').submit(); 
     return false; 
    }); 
}); 
+0

我想你是指jQuery(不只是javascript)。 – gibberish

+0

你的正確我的意思是jQuery。我改變了鏈接,使得「A」中的ID仍然不能執行代碼。任何其他想法?我欣賞你的反饋。 – bbrooke

0

$( 「#鍵」)點擊(函數(E ){

 $.post('url.php', $("#form").serialize(), function(data){ 
+1

1 /考慮在代碼片段中添加至少一些單詞,以便OP和未來的答案讀者可以清楚地理解它。 2 /我認爲這個答案確實缺少一些代碼,那代碼肯定會以分析錯誤結束。 –