2016-08-11 12 views
1

支払いのゲートウェイを2checkするためにフォーム値を送信すると、PE101エラーが発生します(要求値は渡されません)。 私のコードをデバッグした後、私はPE101のエラーが名前属性のためにIEでのみ問題を引き起こしていることが分かりました。 Chromeで同じコードが動作していますが、IEで試したときにEdgeが原因で問題が発生しています。 誰もがなぜ2check支払いゲートウェイは、名前属性なしでフォームの値を取ってIEで言うことを教えてください。IEで問題の原因となるフォーム名の属性

   $("#idNavPremimum").click(function() { 
 
       alert("k"); 
 
       $("input[name*='quantity']").val("88"); 
 
       $("input[name*='li_0_price']").val("99"); 
 
       $("input[name*='email']").val("[email protected]"); 
 
       $("#payment").submit(); 
 
     
 
       });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
      <form id="payment" action='https://sandbox.2checkout.com/checkout/purchase' method='post'> 
 
       <div class="form-group"> 
 

 
       <label for="quantity" class="col-md-1 control-label">No. of users</label> 
 
       <div class="col-md-2"> 
 
        <!----------------------This control causing the issue---------------------> 
 
        <input type="text" maxlength="3" class="form-control specialCharRestrict" id="quantity" name=""> 
 
        <!----------------------This control causing the issue ends---------------------> 
 
       </div> 
 
       <label for="ddlPriceCalcMonths" class="col-md-1 control-label">No. of months</label> 
 
       <div class="col-md-2"> 
 
        <select id="ddlPriceCalcMonths" class="form-control clsPriceValDetails" disabled> 
 
        <option value="1">1</option> 
 
        <option value="3">3</option> 
 
        <option value="6">6</option> 
 
        <option value="12">12</option> 
 
        </select> 
 
       </div> 
 
       <label for="txtTotalPrice" class="col-md-1 control-label">Total price</label> 
 
       <div class="col-md-2"> 
 
        <input type="text" class="form-control clsPriceVal" id="txtTotalPrice" readonly/> 
 
       </div> 
 
       <!--<input type='hidden' name='sid' value='901286127' />--> 
 
       <input type='hidden' name='sid' value='901286127' /> 
 
       <input type='hidden' name='mode' value='2CO' /> 
 
       <input type="hidden" name="currency_code" value="USD" /> 
 

 
       <input type='hidden' name='li_0_type' value='product'> 
 
       <input type='hidden' name='li_0_name' value='Webstation Premium'> 
 
       <input type='hidden' name='li_0_price' value='20'> 
 
       <input type='hidden' name='li_0_quantity' value='2'> 
 
       <input type='hidden' name='li_0_tangible' value='N'> 
 
       <input type='hidden' name='email' value='[email protected]'> 
 
       <input type='hidden' name='fixed' value='Y' /> 
 
       <input type='hidden' name='x_receipt_link_url' value='http://webstation.osmosystems.com/' /> 
 

 
       </div> 
 

 
      </form> 
 
      <div class="form-group"> 
 
       <button class="button-style btnPos" type='button' data-toggle="modal" data-target="#divwebstationForm" id="idNavPremimum"><i class="fa fa-android fa-fw"></i> BUY NOW <i class="fa fa-cloud-download fa-fw"></i></button> 
 
      </div>

答えて

1

これは、フォームの動作のIEの実装によるものです。

としてMS specsnameは、テキストのような入力に必須です。 フォームが提出されると、名前プロパティのない入力が考慮されます。つまり、リクエストのContent-Lengthヘッダーに含まれており、FormDataには空の行が含まれています。

一方、nameを除いて入力に遭遇した場合は、Chromeは無視します。

IE上で動作させるには、nameプロパティを設定する必要があります。

関連する問題