フォームのある JSP ページがあります。フォームを送信すると、AJAX 投稿に使用する JSON 文字列が作成および生成されます。
ただし、問題があります。フォームから複数の値を取得する必要があり、これを行うために次を使用しています。
.find('input[name=item1])
.not('input[type=hidden]')
item1、item2、item3 という名前の入力を取得するにはどうすればよいですか?
やってみたけどダメだった?
.find('input[name=item1][name=item2][name=item3]')
以下はこれのための私のコードです:
// Create JSON based data object
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
// Form Submission
$('#form').submit( function() {
// Create data array, used for building request message
var data = {
request: {
requestType: "request",
fields: [ {
itemX1 : '1',
itemX2 : '2',
itemX3 : '3'
} ]
}
};
// Create field array based variables for request message
var fields = {
fields: [ {
itemX1 : null,
itemX2 : null,
itemX3 : null
} ]
};
// Get reqired data from the form submitted
fields = $('#form')
//.find('input')
.find('input[name=lmBtId][name=my]')
.not('input[type=hidden]')
.serializeObject();
// Set the field array variables with data
fields.itemX1 = '1';
fields.itemX2 = '2';
fields.itemX3 = '3';
// Update data array with newly updated field array
data.request.fields = [fields];
var finalData = JSON.stringify(data);