按下提交按钮后更改表单值

新手上路,请多包涵

[编辑] 经过大量挖掘,我发现问题出在我如何将 CKEditor 集成到我的页面中。正如已接受的答案中所述,在这种情况下,简单明了的方法 确实 有效。

你好,

我需要在按下提交按钮之后,但在实际提交之前更改表单的值。

我试过连接到表单的“提交”事件,并手动更改文本字段值,但看起来这实际上并没有更改提交的值。

有任何想法吗?

原文由 Editorman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 580
2 个回答

我很好奇你所说的 submit 处理程序对你不起作用。它适合我。多年来,我一直在使用它来填写隐藏字段,然后再发送表格;也应该适用于其他表单字段。

示例( 实时复制):

HTML:

 <form id='theForm'
    action='http://www.google.com/search'
    method='GET' target='_new'>
      <label>Search for:
        <input type='text' name='q' id='txtSearch'></label>
      <input type='submit' id='btnSearch' value='Search'>

脚本:

 window.onload = function() {

  document.getElementById('theForm').onsubmit = function() {
    var txt = document.getElementById('txtSearch');
    txt.value = "updated " + txt.value;
  };
};​

在 Windows 上测试和运行 IE6 和 IE7,在 Linux 上测试和运行 Chrome、Firefox 和 Opera。


更新:根据您在下面的评论,您正在使用 jQuery。使用 jQuery 也可以正常工作:

 $('#theForm').submit(function() {
  var txt = $('#txtSearch');
  txt.val("updated " + txt.val());
});

现场示例 测试并在同一组浏览器上工作。 此版本 使用更开放的搜索而不是 id ,并且仍然有效。

原文由 T.J. Crowder 发布,翻译遵循 CC BY-SA 2.5 许可协议

您需要阻止默认提交操作,然后自己手动重新提交表单:

 $('form').submit(function(e) {
    e.preventDefault();

    // do your processing

    this.submit(); // call the submit function on the element rather than
                   // the jQuery selection to avoid an infinite loop
});

原文由 lonesomeday 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题