如何使用多个值发布jquery ajax数据对象

时间:2017-04-05 19:06:30

标签: javascript jquery html ajax

我有一个带有两个输入的表单(后来有更多输入)。一个输入是文本输入,第二个是复选框。我想用$ .ajax发送这两个输入。

我创建了一个带有一个输入的对象formData。如果复选框处于活动状态,我想将第二个附加到Object。

不幸的是,由于格式错误,我无法传递Object。

我的代码:

<form id="myForm">
<input type="text" name="search_text" id="search_text" placeholder="Search by a name">
<input type="checkbox" name="exact" value="Exact">Exact
</form>
<br>
<div id="result"></div>

<script type="text/javascript">
    $(document).ready(function(){

        $('#myForm').on('change', ':checkbox', function(){
            if($(this).is(':checked')) {
                console.log($(this).val() + ' is now checked');
            }
            else {
                console.log($(this).val() + ' is now unchecked');
            }
        });

        var formData = {'qry':search};
        $('#search_text').on('keyup', function(e){
            e.preventDefault();
            var search = $(this).val();
            $('#result').html('');
            $.ajax({
                url:"fetch.php",
                method: "POST",
                data: formData,
                dataType: "text",
                success:function(data) {
                    $('#result').html(data);
                }
            });
        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

您需要序列化表单数据,然后根据需要添加更多数据:

var data = $('#myForm').serializeArray();
data.push({name: 'sample', value: "something_more"});

你的ajax应该是这样的:

var data = $('#myForm').serializeArray();
data.push({name: 'sample', value: "something_more"});
        $.ajax({
            url:"fetch.php",
            method: "POST",
            data: data,
            dataType: "text",
            processData: false, 
            success:function(data) {
                $('#result').html(data);
            }
        });