Javascript 将表单脚本从jquery 1.4转换为1.9
我想转换我找到的脚本。。。但我不能。它与jQuery1.5配合使用。 但它不再适用于jQuery1.6 然而,我尝试了jquery—将较旧的jquery代码迁移到jquery 1.9+。 但是没有结果 剧本:Javascript 将表单脚本从jquery 1.4转换为1.9,javascript,jquery,Javascript,Jquery,我想转换我找到的脚本。。。但我不能。它与jQuery1.5配合使用。 但它不再适用于jQuery1.6 然而,我尝试了jquery—将较旧的jquery代码迁移到jquery 1.9+。 但是没有结果 剧本: $.post('', form.serialize(), function(msg) { submitFlag = false; overlay.hide(); $('span.errorIcon').remove(); if
$.post('', form.serialize(), function(msg) {
submitFlag = false;
overlay.hide();
$('span.errorIcon').remove();
if (msg.success) {
$('#formContainer, #mdiv, #contactboxfloat').fadeOut(function() {
form.get(0).reset();
$('#thankYou').fadeIn();
});
} else {
$.each(msg, function(k, v) {
var errorIcon = $('<span>', {
className: 'errorIcon'
});
var errorTip = $('<span>', {
className: 'errorTip',
text: v
}).hide().appendTo(errorIcon);
errorIcon.hover(function() {
errorTip.stop().fadeIn(function() {
errorTip.css('opacity', 1);
});
}, function() {
errorTip.stop().fadeOut('slow', function() {
errorTip.hide().css('opacity', 1);
});
});
form.find('[name=' + k + ']').closest('.formRow').append(errorIcon);
if ($(window).width() - errorIcon.offset().left > 240) {
errorTip.css('left', 30);
} else {
errorTip.css('right', 30);
}
});
}
}, 'json');
有两个主要方面可以阻止JQuery的向后兼容性: $document不再与$document相同,它是一个空的jQuery对象 jQuery将只解析有效的JSON,而不是看起来像JSON但在技术上无效的东西 因此,请检查您的JSON是否有效
来源:你能给我们一个JSFIDLE吗?不幸的是,这是不可能的。该脚本可与其他PHP文件一起使用。我做本地测试。谢谢你的帮助!。appendTo在最新的jQuery中仍然有效,为什么要替换它呢?我以为问题就在那里。经过一些修改后,我的脚本可以正常工作,但这部分脚本允许我在表单中出现错误时显示帮助图标。它与jQuery1.4一起工作。。。我不明白为什么!在Ajax调用中添加一个错误处理程序,看看它是否被触发
if (!function_exists('json_encode'))
{
function json_encode($a=false)
{
if (is_null($a)) return 'null';
if ($a === false) return 'false';
if ($a === true) return 'true';
if (is_scalar($a))
{
if (is_float($a))
{
// Always use "." for floats.
return floatval(str_replace(",", ".", strval($a)));
}
if (is_string($a))
{
static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
}
else return $a;
}
$isList = true;
for ($i = 0, reset($a); $i < count($a); $i++, next($a))
{
if (key($a) !== $i)
{
$isList = false;
break;
}
}
$result = array();
if ($isList)
{
foreach ($a as $v) $result[] = json_encode($v);
return '[' . join(',', $result) . ']';
}
else
{
foreach ($a as $k => $v) $result[] = json_encode($k).':'.json_encode($v);
return '{' . join(',', $result) . '}';
}
}
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
try{
$contactForm->validate();
$contactForm->send();
$thankYou = $config['thankYouMessage'];
if(IS_AJAX){
echo json_encode(array('success'=>1));
exit;
}
}
catch(FormValidateException $e){
if(IS_AJAX){
echo json_encode($e->errors);
exit;
}
else{
$contactForm->populateValuesFromArray($_POST);
}
}
catch(Exception $e){
die('{"exception":"'.$e->getMessage().'"}');
}
}