で偽/ htmlのチェックボックスが真送ってください:私は、フォームに次のチェックボックスを持ってシリアライズ
<input type="checkbox" name="preparationNeeded" >
これはJavaScriptでSpringControllerに送信されます。
.ajax({
type : 'POST',
url : '${home}ui' + action + name + '.html',
data : $('#updateform').serialize(),
success : function(data) {
console.log("SUCCESS: ", data);
document.getElementById('viewmodal').style.display = 'none';
display(data);
},
error : function(e) {
console.log("ERROR: ", e);
displayError(e.responseText);
}
});
シリアライズは次のとおりです。
チェックすると:
未チェック(チェックボックスの値が含まれていない):これは、ブールフィールドを持つオブジェクトに解析され
FORM: id=1& ...
はをArticle.preparationNeded。これはほぼすべての場合に問題なく動作しますが、問題はprepareNededのデフォルト値はです。
このチェックボックスをオンにすると、値trueが正しく送信されます。しかしチェックボックスがチェックされていない場合、値はシリアル化されておらず、の代わりにのフィールドのデフォルト値をとっています。
ヒント:あなたはまた、私は値= "false" にして隠された値が含まれる場合は、この作品
問題を隠し入力の導入を検討することができます
How to change the value of a check box onClick using JQuery?
チェックボックスがオフの場合は問題ありません。
FORM: id=1& ... preparationNeeded=false&preparationNeeded=true ...
この
"偽真" の値があるorg.springframework.validation.FieldError
Field error in object 'item' on field 'preparationNeeded': rejected value [false,true]; codes [typeMismatch.item.preparationNeeded,typeMismatch.preparationNeeded,typeMismatch.boolean,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [item.preparationNeeded,preparationNeeded]; arguments []; default message [preparationNeeded]]; default message [Failed to convert property value of type [java.lang.String[]] to required type [boolean] for property 'preparationNeeded'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [false,true]]
Bacauseを上げる:これはシリアライズをチェックされている場合でも、次のようですなにか提案を?ありがとう!
heheh 、 はい。ありがとうございました! – Jeremy