Форма отправки с использованием Javascript для вызова перехода веб-потока, не принимает обновленное значение в форме - PullRequest
1 голос
/ 28 октября 2011

Я пытаюсь вызвать отправку формы с использованием javascript (jquery) для вызова перехода через веб-поток.Это работает, и отправка вызывает желаемый переход.Но обновленные значения переключателей не отражаются на объекте модели, который размещен.

Вот код:

<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>

Входное значение id = "success" зарегистрировано икогда элемент управления переходит на сервер, значение input id = "success" обновляется в объекте "infoModel".Но значение answerId не обновляется в объекте "infoModel".

Мысли, если я что-то упустил в форме: элемент radiobutton или есть что-то еще не так?

Заранее спасибо!

РЕДАКТИРОВАТЬ ::::::: Спасибо, мико!в этом есть смысл.Я впервые удалил часть кода, чтобы сделать его более точным, но у меня есть список, который используется для создания переключателей, ниже приведен код:

 <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 Ответ

1 голос
/ 29 октября 2011

С помощью commandName внутри тега form:form вы устанавливаете «Имя атрибута модели, под которым открыт объект формы» (см. Документация Spring ). Затем в пути вы должны указать продолжение пути внутри атрибута модели.

С учетом сказанного, я бы исключил лишнее слово infoModel из path="infoModel.answerId" и переписал бы его как path="answerId" в форме: radiobutton.

...