2012-03-21 6 views
1

WordPressサイトのシンプルカート棚のアイテムのサイズと色のドロップダウン選択のために、カートに追加ボタンにいくつかの検証を設定しようとしています。アラートをポップアップしてアイテムの追加をブロックすることはできますが、適切な値を選択してもアラートがポップするので間違いです。私はこれを数日前から探していて、何の反応もない同じ質問をしているカップルの人々を見つけました。ここでsimpleCart(js)Option Validationを選択

は、カート機能に追加します:

me.add = function() { 
    var me=this; 
    /* load cart values if not already loaded */ 
    if(!me.pageIsReady ) { 
     me.initializeView(); 
     me.update();  
    } 
    if(!me.isLoaded  ) { 
     me.load(); 
     me.update();  
    } 

    var newItem = new CartItem(); 

    /* check to ensure arguments have been passed in */ 
    if(!arguments || arguments.length === 0){ 
     error('No values passed for item.'); 
     return; 
    } 
    var argumentArray = arguments; 
    if(arguments[0] && typeof(arguments[0]) != 'string' && typeof(arguments[0]) != 'number' ){ 
     argumentArray = arguments[0]; 
    } 

    newItem.parseValuesFromArray(argumentArray); 
    newItem.checkQuantityAndPrice(); 

私が実装しようとしているコード:

if(item_Size = "none"){ 
     alert("Please select a size"); 
     return; 
    } 


if(item_Color = "none"){ 
     alert("Please select a color"); 
     return; 
    } 

今イムnoobのそれはどこにもわからないイムので、このようなものになると値を格納し、設定変数名となり、コードが完全に間違っている可能性がありますが、デフォルトの選択オプションの値はありません。

これは、クッキーをロードし、保存します方法です:

me.load = function() { 
    var me = this; 
    /* initialize variables and items array */ 
    me.items = {}; 
    me.total = 0.00; 
    me.quantity = 0; 

    /* retrieve item data from cookie */ 
    if(readCookie('simpleCart')){ 
     var data = unescape(readCookie('simpleCart')).split('++'); 
     for(var x=0, xlen=data.length;x<xlen;x++){ 

      var info = data[x].split('||'); 
      var newItem = new CartItem(); 

      if(newItem.parseValuesFromArray(info)){ 
       newItem.checkQuantityAndPrice(); 
       /* store the new item in the cart */ 
       me.items[newItem.id] = newItem; 
      } 
     } 
    } 
    me.isLoaded = true; 
}; 



/* save cart to cookie */ 
me.save = function() { 
    var dataString = ""; 
    for(var item in this.items){ 
     dataString = dataString + "++" + this.items[item].print(); 
    } 
    createCookie('simpleCart', dataString.substring(2), 30); 
}; 

フルsimpleCartコードはここで見つけることができます:simplecartjs.com

任意の助けをいただければ幸いです、私は他のフォームの検証方法を試してみましたが、シンプルカルが変数を格納する方法のために、ポスト検証用のものを使うのに問題があります。助けてください!!

時間と労力ありがとうございます。

答えて

1

実装しようとしているコードでは、 "none"の値を変数 "item_size"に割り当てています。それが本当であるので、ポップアップが表示されます。比較を実行するときに2つの "="を使いたいとします。

あなたのコード:固定

if(item_Size = "none") 

if(item_Size == "none") 

一見問題を修正する必要があります。がんばろう。

+0

これを指摘していただきありがとうございます。余分な=を追加するとアラートをポップする機能が停止しましたが、カートに追加機能が全く機能していないため、if文を私の別の場所に配置しようとしました。関数を追加するだけでなく、運がないme.checkout関数も追加しました。これらのコード行がどこに行かなければならないかについての入力は素晴らしいでしょう。 –

+0

@ user1282169あなたのコードは 'checkQuantityAndPrice()'関数の 'CartItem'クラスに置かれているようです。 – DondeEstaMiCulo