[英]Preventdefault() function on an anchor working randomly
我有一个正在处理会话的电子商务站点,当两个会话之一为空时,我需要防止默认的a标记上的href缺省。 我设法做到了,但只会在我仅将1个元素添加到有问题的会话中时才会失败。 要澄清的是,如果我在“购物车”中仅添加1个元素,它仍然会阻止默认设置,但是如果我添加2个或更多元素,或者以任何方式或数字删除它们,则只有当购物车为空时,它才能正常工作。
当我的网站刷新页面以将数据提交到购物车会话时,我创建了一个名为data的变量,如果会话不为空,则为“ 1”,如果会话为空,则为“ 2”,然后在隐藏的变量上回显该变量输入具有id数据的数据,并使用jquery来检查元素数据的值,并在与2不同时防止默认值。
//这里定义变量数据//
<?php
if(!isset($_SESSION_["shopping_cart"])){
$data = "1";
}else{
$data = "2";
}
?>
//这是我的主播//
<li><a id="checkout" href="/bubale/checkout.php"
onclick="check();">CHECKOUT</a></li>
//在这里,我将$ data插入隐藏的输入中//
<input type="hidden" id="data" value="<?php echo $data; ?>">
//如果我的脚本//
<script type="text/javascript">
$( "#checkout" ).click(function( event ) {
if ($('#data').val() != "2") {
event.preventDefault();
alert("Seu carrinho de compras esta vacio");
}
});
</script>
但是由于某种原因,它应该可以正常工作,但是添加到购物车中的第一个元素仍然可以防止默认设置,我猜是$ data出于某种原因没有改变。
任何帮助都将得到帮助,即使您有其他方式可以做到这一点,我也很高兴收到有关此问题的反馈...
该功能可能是在文档准备好之前执行的。 尝试使用document.ready函数,如下所示:
$( document ).ready(function() {
$( "#checkout" ).click(function( event ) {
if ($('#data').val() != "2") {
event.preventDefault();
alert("Seu carrinho de compras esta vacio");
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.