[编辑] 经过大量挖掘,我发现问题在于我如何将 CKEditor 集成到我的页面中。正如接受的答案中所述,这种简单而明显的方法在这种情况下确实有效。
你好,
我需要在按下提交按钮后但在实际提交之前更改表单的值。
我试过挂钩表单的“提交”事件,并手动更改那里的文本字段值,但看起来这实际上并没有更改提交的值。
有任何想法吗?
[编辑] 经过大量挖掘,我发现问题在于我如何将 CKEditor 集成到我的页面中。正如接受的答案中所述,这种简单而明显的方法在这种情况下确实有效。
你好,
我需要在按下提交按钮后但在实际提交之前更改表单的值。
我试过挂钩表单的“提交”事件,并手动更改那里的文本字段值,但看起来这实际上并没有更改提交的值。
有任何想法吗?
我很好奇你关于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'>
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());
});
您需要阻止默认提交操作,然后自己手动重新提交表单:
$('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
});
您是否尝试在提交按钮上的单击 JavaScript 事件上添加函数并更改值?它可能会起作用,因为客户端脚本将首先执行