2017-08-12 7 views
0

私はクーポンコードフィールドを持っています。私は検証のために以下のコードを書いた。ユーザーが最初に無効なキーを入力すると、「無効なキー」が表示され、無効なキーを修正して送信すると、何も実行されません。私はそれがelse構造から出てこないことを知っています。あなたはこのラインvar keyinput = ...後に閉じ括弧}を持って入力ミスを訂正した後、javascriptでユーザー入力を検証し、再送信がelse構造から抜け出ることはありません

<form name="offerpage" autocomplete="off" action="/blah/blah blah_servlet/" method="post" onsubmit="return validateCoupon());"> 

<input type="text" maxlength="07" class="form-cntrl" name="COUPON" id="COUPON" value="${vs['COUPON']}" required="" style ="width: 100px"> 

function validateCoupon() 
        { 

         var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3","ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"]; 

         var keyinput = $('#COUPON').val().trim().toUpperCase(); 

} 
         if(couponkey.indexOf(keyinput)>-1) 
          { 
          alert("Awesome"); //testing the flow 
          return true;   
          } 

         else 
          { 
           alert("Invalid Key"); 
           return false; 

          } 



    } 

答えて

1

示唆してください。したがって、関数validateCouponのスコープを閉じます。その結果、その括弧の後のステートメントは関数の一部として実行されません。そのブラケットを取り除くだけで、コードは正常に動作するはずです。

function validateCoupon() { 

    var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3", "ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"]; 

    var keyinput = $('#COUPON').val().trim().toUpperCase(); 

    // } --> This bracket is not required. 
    if (couponkey.indexOf(keyinput) > -1) { 
    alert("Awesome"); //testing the flow 
    return true; 
    } else { 
    alert("Invalid Key"); 
    return false; 
    } 
} 
+1

このonsubmit = "return validateCoupon());"また、最後に余分な丸い丸括弧が付いているため、エラーも発生します。 –

+0

@Nisarg shahとdougtesting.net追加の括弧は私のタイプミスです。私はEclipseを使用していますので、これらは実行時に識別できます。私は日食で自分のコードをチェックし、括弧はうまくいったが、それでも問題は解決しない。どんな手掛かり??? – deechris27

+0

サードパーティライブラリを使用していますか?私は値のフィールドでこの構文を知らない: '$ {vs ['COUPON']}' – Nisarg

関連する問題