我得到一个警报时,选择菜单中有“请选择您所在的国家”,我点击结帐按钮,但是当我在它选择加拿大例如,然后再次选择“请选择您所在的国家”,并按下结帐我没有得到任何警告。如果选择菜单上有“请选择您的国家/地区”,并且用户按结帐,我希望警报始终显示。
jQuery的:
jQuery(function($){
$('#checkForm').submit(function() {
var checkShipping = $("#shipping").val();
if(checkShipping == 'none'){
alert('Please select a shipping option before proceeding');
return false;
}
});
});
HTML部分:
echo "<form id='checkForm' method='post' action='checkout.php'>\n";
echo "<select id='shipping' name='shipping'>\n";
echo "<option id='none' value='none'" . ($this->shippingarea == 'none' ? ' selected="selected"':'') . ">Please select your country</option>\n";
echo "<option id='1' value='1'" . ($this->shippingarea == 1 ? ' selected="selected"':'') . ">United States</option>\n";
echo "<option id='2' value='2'" . ($this->shippingarea == 2 ? ' selected="selected"':'') . ">Canada</option>\n";
echo "</select>\n";
echo "<input type='submit' value='Update' />\n";
echo "</form>\n";
演示:(您必须先将商品添加到购物车中) 在这里
我的PHP代码: 链接
问题在于success
jcart.js中的AJAX函数包含:
container.html(response);
这将替换jcart
DIV中的所有元素。因此,您的$("#checkForm").submit()
绑定丢失了,因为绑定到的元素已被替换。您需要使用事件委托:
$("#jcart").on("submit", "#checkForm", function() {
...
});
由于您使用的是早于的jQuery版本on()
,因此必须使用delegate
,它以不同的顺序接受其参数:
$("#jcart").delegate("#checkForm", "submit", function() {
...
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句