2011-11-11 50 views
2

我有以下代碼,但是當我提交從頁面重定向。我希望能夠使用jquery/ajax發佈,以便頁面在提交時不會刷新。有人可以給我看一個jsfiddle演示嗎?如何發佈到與jQuery/ajax表單

<form id="widget_contact" action="http://www.mysaintssearch.com/?cmd=sb-gimme&from=?cmd=home" method="post"> 
<input type="text" name="pcode" id="fc_name" /> 
<input type="hidden" name="hdnCmd" value="sb-gimme" /> 
<input name="send_button" id="fc_submit" class="btn_b" type="submit" value="Gimme" /> 
</form> 
+1

你在哪裏卡住? http://api.jquery.com/jQuery.post/上有一個非常明確的例子,我們不會爲您編寫代碼,我們會幫助您編寫代碼。 –

回答

3

在jQuery的post()看看:

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 
1
$('#widget_contact').submit(function(){ 

    $.post('http://www.mysaintssearch.com/?cmd=sb-gimme&from=?cmd=home', $('#widget_contact').serialize(), function(data) { 
     // data is the variable that's returned from the form page 

    }); 
return false; // so the page won't submit   
}); 
3

您請求jsFiddle

HTML

我不得不修改行動網址,否則就XSS

<form id="widget_contact" action="/" method="post"> 
<input type="text" name="pcode" id="fc_name" /> 
<input type="hidden" name="hdnCmd" value="sb-gimme" /> 
<input name="send_button" id="fc_submit" class="btn_b" type="submit" value="Gimme" /> 
</form> 

JAVASCRIPT

$('#widget_contact').submit(function(e){ 
    e.preventDefault(); 
    var form = $(this); 

    $.ajax({ 
     url: form.prop('action'), 
     method: form.prop('method'), 
     data: form.serialize(), 
     success: function(){ 
      alert('Hurraaaayyy'); 
     } 
    }); 
}); 
+0

我忘了提及這個表單是在另一個網站 – bammab

+2

你不能發佈到另一個域名。這將是[跨站點腳本](http://en.wikipedia.org/wiki/Cross-site_scripting)。唯一的可能是使用[CORS](http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing),但這不是跨瀏覽器兼容的。 – topek

0

有幾件事情,我不,我的網站使用:

形式, 表, 輸入類型提交, 輸入型按鈕,在標識 名稱,除非它是一個選擇題項目(像複選框)

在這種情況下,在這裏,特別是,我的解決辦法是:

<div ....> 
<input type="text" id="fc_name" /> 
<span id='hdnCmd' style='display:none; ' >sb-gimme</span> 
<span onClick='mySubmit(); ' >SUBMIT</span> 
</div> 

... 
function mySubmit() { 
    var myData = 'fc_name='+$('#fc_name').val(); 
     myData += '&hdnCmd='+$('#hdnCmd').text(); 
    $.post('processingPage.asp', myData, function (data) { 
     ... display a returning success or failure 
    }); 
} 
+1

這是可怕的建議!你應該使用HTML元素而不是一些奇怪的JavaScript複製它們。首先它更容易,其次它在JavaScript關閉時正常退化。 – Steve