2012-02-06 6 views
0

bigcartelにショップを作成していますので、無料の配送オプションを追加します。しかし、彼らは現在あなたが精力的な国にそれを加えることを許可していません。私は現在、divを表示するためのコーディングを追加しています。つまり、合計が£85以上で、英国を選択するときにユーザーに警告します。フィールド値に無限ループを作成

ATM私のコードは実際にはループしないと思います。/ お客様が商品を追加または減算する際に総額の価値をチェックするようにループする必要があります。合計金額。

私は

var amount = {{ cart.total }} ; 
var country = {{ store.country | country_select }}; 

t=setTimeout("checkprice()",10); 

function checkprice() 
    { 
if(amount >= 85 || country = 45) 
{ 
    alert('OVER 85!') ; 

    } 
    else 
    { 
alert('monkeys') 
    } 
} 

EDITを持っています! 08/2月/ 12 @kolinkにより示唆されるように

:私はこれで出ている,,,

//----get variables-- 
var amount = {{ cart.total }}; 
var moose = document.getElementById("country"); 

    function freedel() 
    { 
     if (moose = 42 || amount >= 85) 
    { 
     document.getElementById("moose").style.visibility='visible';  
    } 
      else 
    { 
     alert('WRONG!') 
     } 
     } 

HTMLのビーイング:

 <div id="moose" style="visibility:hidden;"> dfgsdgfdsg</div> 

<h3 id="cart_price" onChange="freedel()">{{ cart.total | money_with_sign }}</h3> 
+3

あなたはそれがループしません正しいです - 。。。何のループがそのコードでは全くありません、あなたはそれを設定しないのはなぜ –

+1

ユーザーが何かを追加または削除するたびにチェックして、 – Henesnarfel

+0

をループするだけでなく、機能するためには、カートの合計が更新されるか、国が変更されるたびに呼び出す必要があります。 – zero

答えて

1

あなたは、ページがロードされてから10ミリ秒後に価格をチェックするように指示します。

コードが機能していれば、アラートが表示され、さらに10ミリ秒後に問題が解決されます。

cart.totalまたはstore.countryのいずれかを更新する場合は、コードにを追加します。たぶんonChangeイベントがあなたを助けます。

補足として、setTimeoutには決して文字列を使用しないでください。 (関数自体(。すなわちsetTimeout(checkprice,10);)または匿名関数をされたパスsetTimeout(function() {checkprice();},10);代わり

+0

私は現在これを置いています。 '' ---- get variables-- var amount = {{cart.total}}; var moose = document.getElementById( "country"); 関数freedel(){ IF(ムース= 42 ||量> = 85) { のdocument.getElementById( "ムース")style.visibility = '見えます'。 }他 { 警告( 'WRONG!') }} ' チェック上記のコードの残りの部分 –