jquery如何獲得input標簽中的某個值


在完成一個購物車的功能,在商鋪的頁面選定了多個商品,將各個商品的詳細信息保存到cookie中,點擊跳到購物車頁面進行結算。

在購物車的頁面,是在cookie中取出商品的詳細信息,如果是多個商品就對cookie進行循環遍歷,取出商品的信息,再對信息進行拼接,效果是上圖。
那現在出現一個問題,就是購物車中商品的數量只能點擊加號和減號進行增減,無法手動輸入,手動輸入商品的數量,跳轉到提交頁面后無法進行保存。看代碼:

現在就要完成這項功能。

思路是:取到該商品的goodIds,然后到cookie中取出該商品的詳細信息,取出其中的buyNum---商品購買的數量,將input中的值賦給它,再講其保存到cookie中。----公司的代碼質量不是很高,但是先完成功能,以后再想想該如何優化。
strHTML = strHTML+'

';
strHTML = strHTML+' <span class="reduce'+(buyNum<=1?" disabled":"")+'" goodsId="'+goodsId+'">−';
strHTML = strHTML+' ';
strHTML = strHTML+' +';
strHTML = strHTML+'
';

我剛開始想實現此功能的想法是在input標簽中的onkeyup函數和onafterpaste函數后加上一個函數setBuyNum函數,這樣,當進行購買數量的修改后,會獲得商品的id再自動觸發該函數,完成,從cookie中取值,取出buyNum,賦值,在保存到cookie中。

但是如果是多個商品會出現問題,只有一個商品的數量會進行改變,另外的商品無法進行保存。原因是,我的代碼獲得商品的id是var goodsid=$(".numBox .reduce").val();
但是如果是多個商品,那么我去到的是多個id,所以通過我的這種取法,只能得到第一個商品的id。所以不行。

應該用這種寫法:
$("input[name='buyNum']").blur(function(){
var goodsId = $(this).next().attr("goodsId");
var buyNum = $(this).val();
var localcart = getDataFromCookie();
localcart[goodsId]['buyNum'] = parseInt(buyNum);
saveCookies(localcart);
});

這種寫法更加的精妙,當buyNum修改后,失焦,就會觸發該事件。
這兩種方法關鍵是獲取商品的id,告訴函數是哪個商品發生了改變,我也是錯在此處。
可能因為我的代碼沒有全部上傳上來,所以,只是提供了一種思路。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM