我有链接
<a href='#' class='changer text-primary'><i class='fa fa-pencil-square-o '></i></a>
使用javascript内联编辑产品数量的值。它曾经工作得很好,直到我在我的应用程序内实现mod重定向。我添加了基础链接:<base href="http://127.0.0.1/MyApp/">
现在,当我点击这个链接时,我被重定向到http://127.0.0.1/MyApp/index.php,而不是停留在同一个页面,并通过jquery切换显示更新的形式。
这是更新表单:
<form class="update-quantity-form" style="display: none">
<div class="input-group updater">
<input name="quantity" value="<?= $saved_cart_items[$id_product]['quantity']?>" min="1" class="form-control" required="" type="number">
<span class="input-group-btn">
<button type="submit" class="btn btn-default update-quantity">Update</button>
</span>
</div>
</form>
这是相对于这个文件的htaccess的内容:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^MyCart/?$ cart.php [NC,L]
这是被忽略的切换动画的javascript代码:
$('.changer').on('click', function () {
$('.update-quantity-form').toggle('fast');
});
这个问题与mod_rewrite, .htaccess甚至你的html本身都没有关系。
问题是,当不需要导航时,你的javascript事件处理程序没有正确地取消导航。即使没有<base ...>
的问题,在所有浏览器中,url后面也会出现一个标签,在一些浏览器中,焦点会出现在屏幕的顶部。
相反,使用下面的javascript来取消导航事件:
$('.changer').on( 'click', function( event ) {
event.preventDefault();
$('.update-quantity-form').toggle('fast');
} );
有关更多信息,请参阅mdn上的click事件,这是一个MouseEvent,这是一个UIEvent,这是一个事件,它实现了Event.preventDefault()