【问题标题】:How to submit a form with specific fieldset如何提交具有特定字段集的表单
【发布时间】:2012-11-06 21:21:23
【问题描述】:

我有这样的表格:

<form name="paymentForm" id="paymentForm" action="/submit.jsp" method="post">
    <fieldset id="ccData">
        <input id="ccNumber" name="ccNumber"/>
    </fieldset>
    <fieldset id="otherData">
        <input id="requestId" name="requestId"/>
    </fieldset>
</form>

当您提交时,我想(通过 ajax)仅将 #ccData 文件集提交到一些不同的 url(例如 submitCC.jsp),并根据响应我想将完整的表单提交到实际的 url。

我怎样才能做到这一点?

【问题讨论】:

  • 你的问题很笼统,所以这里是一个很笼统的回答:使用javascript/ajax。
  • @undefined 我唯一尝试的是删除一个字段集,然后提交表单。这并不理想。

标签: javascript jquery html web-applications


【解决方案1】:

使用jQuery的serialize方法

var formData = $("#ccData").serialize()​;
$.post("TheUrl",formData);

【讨论】:

  • 序列化不适用于上传文件。怎么办。
【解决方案2】:

您可以使用 JavaScript 来做到这一点 - 例如 jQuery。你构建一个像

这样的 eventHandler
$('#paymentForm').on('click', function () {
  $(this).preventDefault();
  if ($(this).hasClass('first_send')) {
    $.ajax({
      url: "your_url",
      data: { ccData: $('#ccData').val()}
    }).done(function ( data ) {
      $('#paymentForm').addClass('first_send')
      // examin the data, insert stuff you need and send the form again
      // with ajax
    })
  } else {
   $(this).removeClass('first_send')
   // this is the second send - so do stuff here - show a result or so
  }
})

使用 first_send 类,您可以检查它是第一次发送还是第二次发送。这只是一个未经测试的、不完整的想法,你可以如何做到这一点。我想你得到了大局......

【讨论】:

  • else 永远不会发生,因为您没有阻止表单通过浏览器默认提交。还需要用户点击提交两次
  • @charlietfl 你是对的!正如我所写 - 它是不完整的。我只是想说明它如何“可以”实现。无论如何感谢您的评论!
  • 编辑解决方案更有意义,因此 OP 有更好的代码工作机会
猜你喜欢
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 2018-04-09
  • 2021-11-09
相关资源
最近更新 更多