使用jquery Post发送输入数组而不提交表单

时间:2015-07-15 22:10:53

标签: jquery html ajax forms

我需要将数据发布到网址而不提交表单并重新加载页面,但我对JQuery不太好。我将如何按照这一点执行某些操作 HTML:

<input type="text" name="name">
<input type="text" name="stuff[]">
<input type="text" name="stuff[]">
<input type="text" name="stuff[]">
<input type="text" name="stuff[]">
<button onclick="send()">send</button>

JQuery的:

function send() {
params= {'name': $('#name').val(), 'stuff': $('#stuff[]').val()};
$.post( "url/test", params );
}

3 个答案:

答案 0 :(得分:3)

此外,您可以将其视为更接近传统表单并使用.serialize()方法。

<强> HTML

<form name="myForm">
    <input type="text" name="name" />
    <input type="text" name="stuff[]" />
    <input type="text" name="stuff[]" />
    <input type="text" name="stuff[]" />
    <input type="text" name="stuff[]" />
    <input type="submit" value="Send" />
</form>

<强>的jQuery

$(function(){
    $('form[name="myForm"]').on('submit', function(e){
        e.preventDefault(); // This prevents the form from actually submitting like a traditional form.
        var formData = $(this).serialize(); // Gathers the form field values
        $.post('url/test', formData, function(data){
            alert(data); // This is the callback that will handle the response from the server.
        });
    });
});

这是DEMO。希望这有帮助!

答案 1 :(得分:2)

您可以获取名为&#34; stuff []&#34;的所有输入中的所有值。像这样:

$('#stuff[]').map(function() { return $(this).val(); }).get().join()

这将为您提供一个串联所有值的字符串,以逗号分隔。

在代码中使用它,如下所示:

function send() {
  params= {'name': $('#name').val(),
    'stuff': $('input[name="stuff[]"]').map(function() {
       return $(this).val(); }).get().join()};
  $.post( "url/test", params );
}

答案 2 :(得分:0)

您可以使用a for循环遍历元素,然后将它们全部放入数组中。