1

フォームの値を 2check out ペイメント ゲートウェイに送信すると、PE101 エラーが発生しました (つまり、Require values not passed)。コードをデバッグした後、名前属性が空の値であるため、PE101 エラーが IE でのみ問題を引き起こしていることがわかりました。同じコードが Chrome で動作しますが、IE で試してみると、Edge が問題を引き起こしています。誰でも理由を教えてください 2check out 支払ゲートウェイが IE からの name 属性なしでフォーム値を取得しない理由を教えてください。

              $("#idNavPremimum").click(function() {
                alert("k");
                $("input[name*='quantity']").val("88");
                $("input[name*='li_0_price']").val("99");
                $("input[name*='email']").val("uday.a@gmail.com");
                $("#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='uday.a@gmail.com'>
                <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>

4

1 に答える 1

1

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

MS 仕様 によるnameと、テキストなどの入力にはパラメーターが必須です。フォームが送信されると、IE は name プロパティのない入力を考慮します。つまり、それらはContent-LengthRequest のヘッダーに含まれ、FormData空の行を含むことを意味します。

一方、Chrome では、name単に無視せずに入力に遭遇した場合は FF になります。

要約すると、IEで動作させるには、プロパティを配置する必要がありnameます。

于 2016-08-11T14:06:10.997 に答える