Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2015, 14:04
Avatar de fegm_4
fegm_4
 
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 11 años, 2 meses
Puntos: 8
jQuery validator envia un formulario invalido

Saludos! Estoy trabajando desde hace rato con un formulario que tiene un SELECT, un TEXTAREA y como opcion un INPUT[text]. La cuestión es que al validar el formulario, este aunque sea invalido se envía. El error se presenta en el SELECT puesto que no verifica que este cambia. Si alguien puede ayudarme a verlo mejor, lo agradeceria.

Código Javascript:
Ver original
  1. var newparameterform = $('#NewParameterUnitForm').validate({
  2.         onfocusout: function(element){
  3.             $(element).valid();},
  4.         onsubmit: true,
  5.         rules: {
  6.             ParameterSelect: {
  7.                 required: '#ValueNewParameter:not(:visible)',
  8.                 remote: {
  9.                     url: '../request/checkrepeated/',
  10.                     type: 'POST',
  11.                     cache: false,
  12.                     data: {
  13.                         from: function(){return $('#FromOrigin').val();},
  14.                         name: function(){return $('#ParameterSelect option:selected').text();},
  15.                         value: function(){return $('#ParameterSelect option:selected').val();},
  16.                         request: function(){return $('#IdRequest').val();},
  17.                         x: function(){return $('#IdUnit').val();},
  18.                         options: function(){
  19.                             var myarray = [];
  20.                             var i = 0;
  21.                             if(String($('#FromOrigin').val()) !== 'detail'){
  22.                                 $('#RequestTechnicalParameter tbody tr:nth-child('+ $('#RowOrigin').val() +')').find('.parameter-title').each(function(){
  23.                                     myarray[i] = $(this).text();
  24.                                     i++
  25.                                 });
  26.                             }
  27.                             return JSON.stringify( myarray );
  28.                         }
  29.                     }
  30.                 }
  31.             },
  32.             ValueNewParameter: {
  33.                 required: '#ValueNewParameter:visible',
  34.                 remote: {
  35.                     url: "../request/checknewparameter/",
  36.                     type: "post",
  37.                     cache: false,
  38.                     data: {
  39.                         name: function() {
  40.                             return $("#ValueNewParameter").val();
  41.                         }
  42.                     }
  43.                 }
  44.             },
  45.             ParameterValue: {required: true}
  46.         },
  47.         messages: {
  48.             ParameterSelect: {
  49.                 required: 'Este campo es obligatorio',
  50.                 remote: 'La unidad ya tiene establecido este parámetro. Cierre esta ventana y modifíquelo'},
  51.             ValueNewParameter: {
  52.                 required: 'Este campo es obligatorio',
  53.                 remote: 'El parámetro ya existe. Haga click en el botón y seleccione su opción'},
  54.             ParameterValue: {required: 'Este campo es obligatorio'}
  55.         },
  56.         invalidHandler: function(event, validator) {
  57.             alert('El formulario no es valido');
  58.         },
  59.         submitHandler: function(form){
  60.             var $form = $(form);
  61.             var $inputs = $form.find("input, select, button, textarea");
  62.             var serializedData = $form.serialize();
  63.             var btn = $('#SetParameterUnitAction');
  64.             $.ajax({
  65.                 url: '../request/addparameter/', method: 'POST', cache: false, dataType: 'json',
  66.                 data: serializedData,
  67.                 beforeSend: function(){
  68.                     $inputs.prop('disabled', true);
  69.                     btn.button('loading');
  70.                 },
  71.                 success: function(data){
  72.                    if(data.success == true){
  73.                        switch(data.origin){
  74.                            case 'detail':
  75.                                table_parameters.ajax.url('../request/getparametertable/?x='+data.x).load(null, false);
  76.                                break;
  77.                            default:
  78.                                var nrow = $('#RowOrigin').val();
  79.                                $('#RequestTechnicalParameter tbody tr:nth-child('+ nrow +')').find('td:nth-child(3)').append(data.html);
  80.                                break;
  81.                        }
  82.                        $('#SetParameterUnit').modal('hide')
  83.                    } else {
  84.                        alert(data.message);
  85.                    }
  86.                 },
  87.                 complete: function(){
  88.                     $inputs.prop('disabled', false);
  89.                     btn.button('reset');
  90.                     grecaptcha.reset(recaptcha3);
  91.                 }
  92.             });
  93.         }
  94.     });
__________________
--
Aqui fegm_4