jQuery не сериализует fom Internet Explorer

#jquery #internet-explorer #serialization

#jquery #internet-explorer #сериализация

Вопрос:

У меня есть следующий PHP-код:

 echo '      <td id="'.$metaso['semanaventa'].'td1"><form id="'.$metaso['semanaventa'].'form" name="'.$metaso['semanaventa'].'form" class="dinamic" action="compromiso_funciones.php"  method="post">
<input type="text" id="'.$metaso['semanaventa'].'txt" name="met_aso_venta" value="" style="width:100px;" tabindex="'.($idx   1).'" class="validate[required,custom[number]] moneda" />
<input type="text" style="display:none;" name="met_aso_pr" value="'.$metaso['asociado'].'" />
<input type="text" style="display:none;" name="semana" value="'.$metaso['semanaventa'].'" />
<input type="submit"  class ="boton" style="margin:0px;width:100px; display:none;" id="'.$metaso['asociado'].$metaso['semanaventa'].'btn" name="'.$metaso['asociado'].$metaso['semanaventa'].'btn" value="Actualizar" /></form></td>';
echo '      <td id="'.$metaso['semanaventa'].'td2"></td>';
 

И это сценарий jQuery:

             $('.dinamic').live("submit",(function(){
            if ( $(this).validationEngine('validate')){
                $.post($(this).attr("action"), $(this).serialize(), function(html){

                });
            }
            return false; 
        }));
 

Это отлично работает в FF, Chrome, Opera, но в любой версии IE.

Я обнаружил, что:

 $(this).serialize();
 

Ничего не возвращает.

Я пробовал плагин формы malsup, сериализацию вручную с использованием JQ.каждая функция и т. Д..

Помогите!!!!

Комментарии:

1. Какую версию jquery вы используете?

2. 1.4.4 Попробовал 1.6.4 (последнюю версию) и ничего

3. Проверяется ли сгенерированный HTML в FF / Chrome? IE отключается, если HTML неверен.

4. Только предупреждения с помощью средства проверки html FF

5. Не уверен, что отправка может быть привязана к live :/

Ответ №1:

Решаемая проблема!!

Перед входом в функцию проверки я сериализовал форму и передал ее функции post.

Надеюсь, это поможет вашим будущим проблемам.

Ищите serial var, он творит волшебство.

СПАСИБО ВСЕМ

             $('.dinamic').live("submit",(function(){
            forma = $(this);
            serial = $(forma).serialize();
            forma= $(forma).attr('id');
            reng = forma.substring(0,6);
            if ( $(this).validationEngine('validate')){
                $('#'   reng   'td2').empty().html('<img src="imgs/exito.png" />');
                $('#'   reng   'td1').html($('#'   reng  'txt').val());
                $.post($(this).attr("action"), serial, function(html){

                });
            }//Cierre Validate
            return false; // prevent normal submit
        }));
 

Комментарии:

1. У меня была эта проблема с тех пор!!!! Я ненавижу IE: (Перед вводом чего-либо данные должны быть сначала сериализованы, тогда все работает нормально. Большое спасибо

Ответ №2:

Не могли бы вы попробовать использовать submit() вместо live?

http://jsfiddle.net/Av4hW/1/

Кажется, работает нормально 🙂

Комментарии:

1. Я не могу, поскольку мои данные генерируются динамически, поэтому я должен связать событие таким образом.