我有购物车数量的文字字段。我不想让用户对购物车中的任何商品有0个数量。如果他们想要零,那么他们必须删除该项目。
我用过
$('.cart_item_quantity input').keyup(function(){
if((this).val()==0) {
$(this).val()=1;
}
对于该领域,但它似乎不起作用。因此,每当购物车数量等于零时,我希望将其替换为1.如果情况是等于零也是如此。
已更新
这是完整的工作代码
$('.cart_item_quantity input').keyup(function(){
if($(this).val()==0) {
$(this).val(1);
}
var update_obj = $(this);
var quantity = $(this).val(); // item quantity NEED TO SANITIZE THIS TO ONLY NUMBERS
var array_id = $(this).parent().siblings(".array_id").val(); // item array number
var item_price = parseFloat($(this).parent().siblings(".cart_item_price").find("span").html()); // price of item
var item_total;
var total_price=0;
$.ajax({
type : 'POST',
url : 'ajax/update-cart.php',
data : 'quantity='+quantity+'&array_id='+array_id,
success : function(data) {
item_total = item_price * quantity;
update_obj.parent().siblings(".cart_item_total").find("span").html(item_total);
calculate_total_price();
cart_contents();
cart_quantity();
}
});
});
但是现在我遇到了一个问题,如果字段值为null,它将恢复为0.我怎样才能超越它?
答案 0 :(得分:2)
使用val(1)
代替$(this).val()=1;
并且您有一些语法错误
试试这段代码
$('.cart_item_quantity input').keyup(function(){
if((this).val()==0)
$(this).val(1);
});
答案 1 :(得分:1)
keyup(
括号。(this).val()
而不是$(this).val()
.val(x)
而非.val() = x
设置值; .val
是功能而不是属性.cart_item_quantity input
查找输入,它是 .cart_item_quantity
的后代。如果您的意思是包含cart_item_quantity
类的输入,则需要编写$('input.cart_item_quantity')
。请注意,与javascript中的"" == 0
进行比较,因此,如果您与0
进行比较,则只要文本字段为空,您就会将值设置为'1'
。如果您与'0'
进行比较,则只有当用户在文本字段中明确键入零时才会替换该值。
另请注意,作为用户,使用在键入时操作的文本字段可能不方便。请考虑使用验证。您可能还需要考虑HTML5 number
类型,您可以在其中以声明方式设置此行为:
<input type="number" min="1" value="1" />
以这种方式,用户将清楚地看到预期大于零的数字。用户可以手动输入其他内容,而支持HTML5的浏览器只会显示常规输入字段,因此仍然需要进行验证。
答案 2 :(得分:0)
$(this).val()=1;
应该是
$(this).val(1);
获取值 - .val()
设置值 - .val(值)
此外,您似乎错过了if语句中的$
符号
if( $(this).val()==0) {
答案 3 :(得分:0)
将您的代码更改为。
$('.cart_item_quantity input').keyup(function(){
if((this).val()==0) {
$(this).val(1); ///here was the problem..
}
}
答案 4 :(得分:0)
我猜你正在检查cart_item_quantity不是null。所以这样做。这可能会有所帮助。
$('.cart_item_quantity input').keyup(function(){
if((this).val()=="") {
$(this).val(1);
}