我放弃尝试使用onblur或focusout来提交表单,因为这会强制页面刷新。现在我使用一个按钮,它使用ajax post并在添加项目时清除qty字段。
我现在的问题是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;
}
});
答案 0 :(得分:0)
如果您想触发提交事件,请使用以下命令:
$('form.jcart').submit();
我希望我有你的意图,因为代码格式错误,问题不够明确。
答案 1 :(得分:0)