-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 回答