如何使用jquery / ajax发布到表单

时间:2011-11-11 20:57:36

标签: jquery ajax

我有以下代码,但是当我从页面提交重定向时。我希望能够使用jquery / ajax发布到它,以便页面不会刷新提交。有人能给我看一个jsfiddle演示吗?

<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>

5 个答案:

答案 0 :(得分:3)

看一下jQuery post()

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

答案 1 :(得分: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');
        }
    });
});

答案 2 :(得分:1)

我强烈建议您使用 jQuery form plugin

答案 3 :(得分: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           
});

答案 4 :(得分: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
    });
}