当href =“hashtag”时,mod重写重定向到基本链接

时间:2015-10-07 12:17:50

标签: php .htaccess

我有链接

<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');
});

1 个答案:

答案 0 :(得分:2)

这个问题与mod_rewrite,.htaccess甚至你的html本身无关。

问题是当您不需要导航时,您的javascript事件处理程序无法正确取消导航。即使没有<base ...>的问题,在所有浏览器中,网址后面都会显示一个主题标签,在某些浏览器中,焦点会突显显示在屏幕顶部。

相反,请使用以下javascript取消导航事件:

$('.changer').on( 'click', function( event ) {
  event.preventDefault();
  $('.update-quantity-form').toggle('fast');
} );

有关详细信息,请参阅the click event on mdn,它是一个MouseEvent,它是一个UIEvent,它是一个Event,它实现了Event.preventDefault()