#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?
Кажется, работает нормально 🙂
Комментарии:
1. Я не могу, поскольку мои данные генерируются динамически, поэтому я должен связать событие таким образом.