我正在尝试使用javascript(jquery)调用表单提交来调用Webflow转换。它工作,提交调用所需的过渡。但是,更新的单选按钮值不会反映在已发布的模型对象上。
以下是代码:
<form:form method="post" action="#" commandName="infoModel" name="pageForm">
<form:input type="input" path="testMsg" id="success" />
<input type="button" id="clearSelections" value="Clear Selections">
<div class="question">
<h4><c:out value="${infoModel.questionInfo.description}"/> </h4>
<form:radiobuttons path="infoModel.answerId"
itemValue="answerId" itemLabel="answerDescription" items="${infoModel.answers}" delimiter="<br/>" />
</div>
<input type="submit" name="_eventId_saveQualitativeInput" value="Save" id="save" />
$(document).ready(function() {
$('#tabs').tabs();
//Clear selections (copy is server-side)
$('#clearSelections').click(function() {
//$('input[type="radio"]').prop('checked', false);
$('input[type="radio"]').removeAttr('checked');
$('#save').trigger('click');
});
});
</form:form>
表单:radiobutton,生成以下html:
<div class="question">
<h4>Is this a general obligation of the entity representing a full faith and credit pledge? </h4>
<span>
<input type="radio" checked="checked" value="273" name="infoModel.answerId" id="infoModel.answerId1">
<label for="infoModel.answerId1">Yes</label>
</span>
<span><br>
<input type="radio" value="274" name="infoModel.answerId" id="infoModel.answerId2">
<label for="infoModel.answerId2">No</label>
</span>
<br>
<span class="error"></span>
</div>
注册input id =“success”值,当控件进入服务器时,输入id =“success”的值在“infoModel”对象中更新。但是,“infoModel”对象上的answerId值未更新。
如果我遗漏了表格中的某些内容,我会想到:radiobutton元素或者是否有其他错误?
提前致谢!
EDIT ::::::: 谢谢mico!那讲得通。我第一次剥离了一些代码以使其精确,但我有一个用于构建单选按钮的列表,下面是代码:
<c:forEach items="${infoModel.list["index"]}" var="qa" varStatus="rowCount">
<div class="question">
<h4><c:out value="${question.questionInfo.description}"/> </h4>
<form:radiobuttons path="list["index"][${rowCount.index}].answerId" itemValue="answerId" itemLabel="answerDescription" items="${question.answers}" delimiter="<br/>" />
<br>
</div>
</c:forEach>
你能否建议我怎么试试这个? 注意:相同的代码适用于常规表单提交单击提交类型的按钮。它的javascript表单提交不起作用。我也尝试在javascript中做任何我想做的事情,然后调用button.trigger('click');表单已提交,但我在javascript中对表单所做的更改没有反映出来。
答案 0 :(得分:1)
在commandName
标记内使用form:form
,您可以设置“公开表单对象的模型属性的名称”(请参阅Spring Documentation)。然后在路径中,您应该告诉路径内部模型属性的继续。
有了这个说我只会从path="infoModel.answerId"
删除额外的单词infoModel,并将其重写为path="answerId"
,形式为:radiobutton。