我放弃尝试使用onblur或focusout来提交表单,因为这会强制刷新页面。现在我使用一个按钮,它使用ajax帖子并在项目添加时清除数量字段。jquery ajax表单提交在IE8中无法正常工作
我现在的问题是,IE8不能很好地使用这个解决方案。
$('.qty').change('input[type=text]').val('');
这适用于FF,Chrome和Safari,但不适用于IE8。在IE8中,当用户点击添加项目按钮时,表单被提交并刷新页面。显然,在IE8中,ajax调用失败。我无法弄清楚为什么。我需要在.change呼叫之前阻止默认操作吗?从jcart-javascript.php
// SEND ITEM INFO VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
// $.post('<?php echo $jcart['path'];?>jcart-relay.php', { "<?php echo $jcart['item_id']?>": itemId, "<?php echo $jcart['item_price']?>": itemPrice, "<?php echo $jcart['item_name']?>": itemName, "<?php echo $jcart['item_qty']?>": itemQty, "<?php echo $jcart['item_add']?>" : itemAdd }, function(data) {
$.post('<?php echo $jcart['path'];?>jcart-relay.php', postData, function(data) {
//JSTN-end
// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
$('#jcart').html(data);
$('.jcart-hide').remove();
$('.qty').change('input[type=text]').val('');
});
// PREVENT DEFAULT FORM ACTION
return false;
});
// WHEN THE VISITOR HITS THEIR ENTER KEY
// THE UPDATE AND EMPTY BUTTONS ARE ALREADY HIDDEN
// BUT THE VISITOR MAY UPDATE AN ITEM QTY, THEN HIT THEIR ENTER KEY BEFORE FOCUSING ON ANOTHER ELEMENT
// THIS MEANS WE'D HAVE TO UPDATE THE ENTIRE CART RATHER THAN JUST THE ITEM WHOSE QTY HAS CHANGED
// PREVENT ENTER KEY FROM SUBMITTING FORM SO USER MUST CLICK CHECKOUT OR FOCUS ON ANOTHER ELEMENT WHICH TRIGGERS CHANGE FUNCTION BELOW
$('#jcart').keydown(function(e) {
// IF ENTER KEY
if(e.which == 13) {
// PREVENT DEFAULT ACTION
return false;
}
});
而是在'keydown'处理程序返回'FALSE'的,可以考虑使用'e.preventDefault()' – Madbreaks 2012-04-23 21:31:42
谢谢,我会尝试 – Resq32 2012-04-23 21:47:28