How to recognize each list element with Struts 2 iterator tag?

Asked

Viewed 227 times

0

I iterated through a list, adding inputs to be changed. When the field with the class dataFimVigencePlanoVigent is changed, a jquery function is called to change also in the object in java. However any input I change it always recognizes that I changed the first element of the iterator. How should I make you recognize all?

HTML

 <s:iterator value="planoVO.listaDeVigenciasCanalVendaVO" var="vigenciasPlanoCanalVenda">
                <tr>
                    <td width='40%'  align='center'>
                            <label><s:property value="canalVendaVO.nome" /></label>
                            <input type="hidden" name="canalVendaVO.nome"  id="nomeCanalVenda" value='<s:property value="canalVendaVO.nome" />' />
                    </td>
                    <td width='40%'  align='center' >
                       <s:if test="%{status == 'Vigente'}">
                                 <s:property value="dataInicioVigenciaAssociacaoPlano"/>
                                 <input type="hidden" name="dataInicioVigenciaAssociacaoPlano"  id="dataInicioVigenciaAssociacaoPlano" value='<s:property value="dataInicioVigenciaAssociacaoPlano" />'/>
                                 &nbsp;&nbsp;&nbsp;&nbsp;At&eacute;&nbsp;&nbsp;&nbsp;&nbsp;
                                 <input type='text' data-mask="data" data-date-type="default"    size='10' maxlength='10' 
                                 value='<s:property value="dataFimVigenciaAssociacaoPlano"/>' id="<s:property value="canalVendaVO.nome"/>_dataFimVigenciaPlanoVigente" class="dataFimVigenciaPlanoVigente" />
                                 <input type="hidden" name="dataInicioAntesDeAlteracao" id="dataInicioAntesDeAlteracao" value='<s:property value="dataInicioVigenciaAssociacaoPlano" />'  />
                                 <input type="hidden" name="dataFimAntesDeAlteracao" id="dataFimAntesDeAlteracao"  value='<s:property value="dataFimVigenciaAssociacaoPlano" />'  />
                      </s:if>
                       <s:if test ="%{status == 'Expirado'}" >
                                <s:property value="dataInicioVigenciaAssociacaoPlano"/>
                                &nbsp;&nbsp;&nbsp;&nbsp;At&eacute;&nbsp;&nbsp;&nbsp;&nbsp;
                                <s:property value="dataFimVigenciaAssociacaoPlano"/>
                       </s:if>
                       <s:if test="%{status == 'Programado'}" >
                               <input type='text'  data-mask="data" data-date-type="default"  size='10' maxlength='10' 
                                value='<s:property value="dataInicioVigenciaAssociacaoPlano"/>'/>
                                &nbsp;&nbsp;&nbsp;&nbsp;At&eacute;&nbsp;&nbsp;&nbsp;&nbsp; 
                               <input type='text' data-mask="data" data-date-type="default"    size='10' maxlength='10' 
                               value='<s:property value="dataFimVigenciaAssociacaoPlano"/>'  id="<s:property value="canalVendaVO.nome"/>_dataFimVigenciaPlanoVigente" class="dataFimVigenciaPlanoVigente"  />
                               <input type="hidden" name="dataInicioAntesDeAlteracao" id="dataInicioAntesDeAlteracao" value='<s:property value="dataInicioVigenciaAssociacaoPlano" />'  />
                               <input type="hidden" name="dataFimDepoisDeAlteracao" id="dataFimDepoisDeAlteracao" value='<s:property value="dataFimVigenciaAssociacaoPlano" />'  />
                      </s:if>

                    </td>

                </tr>
            </s:iterator>

Jquery

    $(document).ready(function(){ 
$.url.add({'urlAdicionarCanal':'/plano/adicionarCanal.do'});
$.url.add({'urlConsultarCanalVenda':'/canal/iniciarConsultarCanal.do'});

$.url.add({'urlIniciarIncluirCanal':'/canal/iniciarIncluirCanal.do'});
$.url.add({'urlIncluirCanal':'/canal/incluirCanal.do'});
$.url.add({'salvarRelacaoCanalVendaPlano':'/plano/salvarRelacaoCanalVendaPlano.do'});
$.url.add({'salvarRelacaoCanalVendaPlanoAlteracao':'/plano/salvarRelacaoCanalVendaPlanoAlteracao.do'});

$.url.add({'removerVigenciaCanalVendaPlano':'/plano/removerVigenciaCanalVendaPlano.do'});
$.url.add({'alterarDataFimVigencia':'/plano/alterarDataFimVigencia.do'});
$.exibirMensagemErroAoAdicionarCanalVenda = function(data) {
    $('#msgErrosAjax').show();
    $('#ajaxErrors').html('<li>É necessário informar todas as informações.</li>');
    console.log(data.responseText);
};



  $('.dataFimVigenciaPlanoVigente').on('change', function(e){
      var dataFimVigenciaPlanoVigente = $('#dataFimVigenciaPlanoVigente').val();
      var nomeCanalVenda =  $('#nomeCanalVenda').val();
      var dataInicioVigenciaPlanoVigente = $('#dataInicioVigenciaAssociacaoPlano').val();
      var codigoCanalVenda = $('#codigoCanalVenda').val();


     // alert(dataFimVigenciaPlanoVigente);
    //  alert('data início: '+dataInicioVigenciaPlanoVigente);
      alert('nome Canal Venda: '+nomeCanalVenda);
      //alert('codigoCanalVenda');
      $.ajax({
          type: "POST",
          url: $.url.get('alterarDataFimVigencia'),
          data: { 'vigenciaCanalVendaVO.canalVendaVO.codigo':$('#codigoCanalVenda').val(),  
                  'vigenciaCanalVendaVO.dataFimVigenciaAssociacaoPlano':$('#dataFimVigenciaPlanoVigente').val(),
                  'vigenciaCanalVendaVO.canalVendaVO.nome':$('#nomeCanalVenda').val(),
                  'vigenciaCanalVendaVO.dataInicioVigenciaAssociacaoPlano':$('#dataInicioVigenciaAssociacaoPlano').val()
                  },
          beforeSend: function(){
              bloquearTela();
          },
          complete: function(){
              desbloquearTela();
          },
          success: function(data){

          },
          error: function(data){
              alert('error');
          }

      });

  });

1 answer

1


I was able to solve using this to get the value.

  var $this = $(this);
      var dataFimVigenciaPlanoVigente = $this.parent('td').find('.dataFimVigenciaPlanoVigente').val(); 

Browser other questions tagged

You are not signed in. Login or sign up in order to post.