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

时间:2010-12-23 09:23:11

标签: javascript jquery html ckeditor

[编辑]经过大量的挖掘,我发现问题出在我如何将CKEditor集成到我的页面中。在这种情况下, 的简单而明显的方式就像在接受的答案中所阐述的那样。

您好,

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:18)

我很好奇你的陈述submit处理程序不适合你。它对我有用。我已经用它多年来填写隐藏的字段,然后再发送表格;也适用于其他表格领域。

示例(live copy):

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'>

JavaScript的:

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());
});

Live example测试并使用同一组浏览器。 This version使用更开放的搜索而不是id,并且仍然有效。

答案 1 :(得分:12)

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

$('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
});

答案 2 :(得分:1)

您是否尝试在提交按钮上点击JavaScript事件添加功能并更改值? 它可能有效,因为客户端脚本将首先执行