私は次のajaxを持っています。指定された入力要素が変更されるたびに、関数は合計を再計算しようとします。
$('[name^=quantities]').change(function() {
calculate();
});
function collectFormData(fields) {
var data = {};
for (var i = 0; i < fields.length; i++) {
var $item = $(fields[i]);
data[$item.attr('name')] = $item.val();
}
return data;
}
function calculate(){
var $form = $('#purchase-form');
var $inputs = $form.find('[name]');
var data = collectFormData($inputs);
$.ajax({
url: '${validateUrl}',
type: 'POST',
data: data,
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(response.status);
},
error: function () {
alert("error");
}
});
}
HTML:
<form id="purchase-form" action="/MyNewApp/purchase" method="post">
...
...
<input id="quantities[0]_id" name="quantities[0]" type="number">
<input id="quantities[1]_id" name="quantities[1]" type="number">
</form>
春の私のハンドラー
@RequestMapping(value = "/purchaseValidation.json", method = RequestMethod.POST)
@ResponseBody
public ValidationResponse validate(
@ModelAttribute(value = "form") @Valid PurchaseForm form,
BindingResult result, Locale locale) {
ValidationResponse res = new ValidationResponse();
// value of form.getQuantities.get(0) == 0
// value of form.getQuantities.get(1) == 0
return res;
}
PurchaseForm.java
public class PurchaseForm {
private List<Item> itemList;
private List<Integer> quantities;
private boolean starterPackageRequired;
public PurchaseForm() {
}
...
...
}
私のajax投稿中に、数量の値が2と0であることを確認できますが、私のスプリングハンドラーでは両方の値が0です。これを引き起こす可能性のあるポインターはありますか?