使用Javascript表单提交以调用Webflow转换,不会在表单上获取更新的值

时间:2011-10-28 19:12:57

标签: spring spring-mvc spring-webflow

我正在尝试使用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中对表单所做的更改没有反映出来。

1 个答案:

答案 0 :(得分:1)

commandName标记内使用form:form,您可以设置“公开表单对象的模型属性的名称”(请参阅​​Spring Documentation)。然后在路径中,您应该告诉路径内部模型属性的继续。

有了这个说我只会从path="infoModel.answerId"删除额外的单词infoModel,并将其重写为path="answerId",形式为:radiobutton。