我有一个使用AJAX的表单。如何选择将表单的哪些输入发送到后面的代码(而不是整个表单)? AJAX
function send()
{
$.ajax({
type: 'POST',
url: this.action,
data: {'data1': $('#data1').val(),
'data2': $('#data2').val() },
success: function (done) {
$('#box').html(done.output);
});
}
FORM
@using (Html.BeginForm())
{
<input id="data1" value="0" name="data1" onclick="send();" >
<input id="data2" value="0" name="data2" onclick="send();" >
}
答案 0 :(得分:1)
您可以在data
参数中指定它们:
$.ajax({
type: 'POST',
url: this.action,
data: {
field1: $('#field1').val(),
field2: $('#field2').val()
}
});
答案 1 :(得分:0)
var NewKeyword = $('#txtbox1').val();
var type = $('#txtbox2').val()
$.ajax({
type: "POST",
url: "url...",
data: "{'type':'" + type + "','keyword' : '" + NewKeyword + "' }",
然后在c#中你必须能够接受“type and”关键字作为webmethod中的参数
答案 2 :(得分:0)
您可以这样做:
$form = $('form');
$.ajax({
type: 'POST',
url: this.action,
data: {
'name': $('fieldNameForName', $form).val(),
'age': $('fieldNameForAge', $form).val()
}
});
答案 3 :(得分: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,或者其他任何内容,我只是认为您已设置了name属性。