0

我有一个使用 AJAX 的表单。我将如何选择表单的哪些输入发送到后面的代码(而不是整个表单)?AJAX

  function send()
    {
         $.ajax({
                    type: 'POST',
                    url: this.action,
                    data: {'data1': $('#data1').val(), 
                    'data2': $('#data2').val() },
                    success: function (done) {
            $('#box').html(done.output);
        });
    }

形式

@using (Html.BeginForm())
{
<input id="data1" value="0" name="data1" onclick="send();" >
<input id="data2" value="0" name="data2" onclick="send();" >

}
4

4 回答 4

1

您可以在data参数中指定它们:

$.ajax({
    type: 'POST',
    url: this.action,
    data: { 
        field1: $('#field1').val(), 
        field2: $('#field2').val() 
    }
});
于 2012-06-26T19:28:00.310 回答
0
            var NewKeyword = $('#txtbox1').val();
            var type = $('#txtbox2').val()

            $.ajax({
                type: "POST",  
                url: "url...",
                data: "{'type':'" + type + "','keyword' : '" + NewKeyword + "' }",

然后在c#中你必须能够接受“类型和”关键字作为你的webmethod中的参数

于 2012-06-26T19:28:46.007 回答
0

你可以这样做:

$form = $('form');
$.ajax({
        type: 'POST',
        url: this.action,
        data: {
            'name': $('fieldNameForName', $form).val(),
            'age': $('fieldNameForAge', $form).val()
        }
});
于 2012-06-26T19:29:18.620 回答
0

您可以编写一个接受表单选择器的函数,而不是使用序列化:

function getFormData(formSelector,toSend){
    var formData = {};
    for(var i in toSend){
        var field = formSelector.find('input[name="'+toSend[i]+'"]');
        if(field!==undefined) formData[toSend[i]] = field[0].val();
    }
    return formData;
}

用法:

$.ajax({
   url: '/myurl'
   data: getFormData($('#myForm'),['FirstName','LastName','FavoriteColor']),
   type: 'POST'
  });

您传入的数组应该是您要发送的字段的名称属性(您也可以将其设为 id 或其他任何内容,我只是认为您设置了名称属性。

于 2012-06-26T19:33:52.817 回答