我正在使用jQuery向服务器发送Ajax请求以保存表单中输入的值。在我被卡住的部分下面。 HTML是
<span class="no-margin multiple Date_Off" style="margin-left: 104px;">
<input type="text" value="" /><input type="text" />
<input type="text" value="-" /><input type="text" />
<input type="text" /><input type="text" value="-" />
<input type="text" /><input type="text" /><input type="text" />
<input type="text" />
</span>
我尝试过使用jQuery发送请求。我想做的就是这样的事情
我想将表单中的值保存到输入字段所具有的Column_Name。在多个输入字段中,我没有使用输入名称。相反,我使用的classname与数据库中的Column_Name相同。
为此,我使用$(this).parent().attr('class');
。如果我在警报中使用它,它会给我结果没有错误。但是如果我在代码中使用它,它会给我undefined
。
我想将每个输入的值附加到字符串中,以将其保存为单个字符串。
这是我到目前为止所尝试的内容
var input = $('input');
input.change(function () {
// Input click function...
if ($(this).parent().attr('class')
.replace(' multiple ', '')
.replace('no-margins', '') == 'Date_Off') {
// Date Time for the office work!
var value = '';
value = $(this).parent().find('input').each(function (index, ele) {
value += ele.val();
});
send_request('Date_Off', value);
// Below is the else condition, to execute only when the input is single
// Like a single string input and not like the one in image
// That's why I am using attr('name') for that.
} else {
send_request($(this).attr('name'), $(this).val());
}
});
但它返回的内容在Query结构中始终是未定义的。这是
的功能function send_request(input_name, value) {
$.ajax({
url: '/ajax_requests/save_form',
data: 'input_name=' + input_name + '&form_id=' +
$('input[type=hidden]').val() + '&value=' + value,
error: function () {
$('.main-content').append(
'There was an error in request.
Please contact your website Developer to fix it.'
);
},
success: function () {
}
});
}
焦点输入为1. Date
。并且控制台显示内部服务器错误。因为jQuery使用不是Column_Name的input_name=undefined
发送了请求。
我为此创建了一个(迷你)小提琴:http://jsfiddle.net/afzaal_ahmad_zeeshan/EHWqB/
这里有任何帮助吗?
答案 0 :(得分:0)
在这一行中,您试图获取输入的名称
send_request($(this).attr('name'), $(this).val());
我在代码中的任何地方都没有看到“name”属性,我认为您想要的是获取父级的类吗?
send_request($(this).parent().attr('class'), $(this).val());
答案 1 :(得分:0)
对于您发布的小提琴,有两个错误。第一个是你在调用ele.val()
,但是在这个上下文中ele
不是jQuery对象 - 所以你需要从中获取value
属性。第二个是jQuery each
函数对一个对象数组进行操作,它的返回值是该对象数组。您不希望您的value
(应该是字符串)接受该返回值。这是updated, working fiddle
input.change(function () {
// Input click function...
var value = '';
$(this).parent().find('input').each(function (index, ele) {
value += ele.value;
});
send_request('Date_Off', value);
});