-1

これは私が試したものであり、機能しておらず、エラーも発生していません。

   <iframe id="paymentFrame" width="600px" height="670px" scrolling="auto" frameborder="0" src='@Url.Action("ISWForm")'></iframe>


   <script type="text/javascript">

 function sendISWPostData() {

     $("#paymentFrame").load(function () {

         var doc = this.contentDocument;
         var form = doc.getElementById('form1');
         var actionUrl = '@ViewBag.WebPayUrl';
         form.action = actionUrl;
         $(':input[name=product_id]').val('@ViewBag.ProductID');
         $(':input[name=amount]').val('@ViewBag.TransAmount');
         $(':input[name=currency]').val('@ViewBag.TransCurrency');
         $(':input[name=site_redirect_url]').val('@ViewBag.RedirectUrl');
         $(':input[name=txn_ref]').val('@ViewBag.TransRef');
         $(':input[name=pay_item_id]').val('@ViewBag.PayItemID');
         $(':input[name=hash]').val('@ViewBag.Hash');

         form.submit();

         //return true;


     });   //end load
  }  // end send

  $(document).ready(function () {
 sendISWPostData();
 //return true;
 });

 </script>

私は今2日間探していて、助けを求める時が来たと感じています...ありがとう

編集: 正しい jquery 構文を使用するようにコードを変更しました。私はまだフォームの入力を取得していません。フォームは、iframe によって参照されるページにあります。

4

1 に答える 1

2

val()属性の代わりに jQuery オブジェクトを使用する必要がありvalueます。

変化する

$(':input[name=product_id]').value = '@ViewBag.ProductID';

$(':input[name=product_id]').val('@ViewBag.ProductID');

またはjQuery オブジェクトを DOM オブジェクトに変更します

$(':input[name=product_id]')[0].value = '@ViewBag.ProductID';

コメントと更新されたOPに基づいて編集

iframe のコンテンツにアクセスしようとしている場合は、おそらくcontents()を使用する必要があり、コードは次のようになります。

$(this).contents().find(':input[name=product_id]').val('@ViewBag.ProductID'); 
于 2013-10-04T15:29:43.340 に答える