jQuery:如何在提交前修改表单字段

12

但是不会出现新值显示在表单中的丑陋效果。

如果我执行以下代码:

$('#submit_button').click(function(){
   $('#field1').val('newval'); 
   $('#form1').submit(); });

#field1 会短暂地显示新值,这看起来有点不太美观。


看起来你可能把逻辑放在了不应该的地方。你想要实现什么?那个特定操作的目的和原因是什么? - Christopher
3个回答

19

从上面的代码来看,你好像完全忽略了可见的表单元素的值。如果是这样的话,为什么不直接在表单中添加一个隐藏字段,并忽略从文本字段中提交的内容。

如果那段代码并不真实,而你计划修改该值,那么你可以使用相同的技术,类似于下面的示例:

<input type="hidden" name="field1" id="field1" value="" />
<input type="text" name="field1_real" id="field1_real" value="" />

jQuery:

$('#submit_button').click(function() {
    var newValue = $('#field1_real').val(); // Modify me
    $('#field1').val(newValue);
    $('#form1').submit();
});

6
不过,这并没有考虑如果你在表单中按下回车键的情况。 - Matt Fletcher
我相信这个代码可以实现点击按钮或按下回车键提交表单:$('#form1').submit(function() { ... } ); - Stephen R
@StephenR确实会这样,但我不确定#submit_button是否是一个真正的提交按钮,因此它正在提交表单(这也是为什么我没有回应Matt,因为超出了范围)。 - Rudi Visser

0

为什么不使用隐藏字段?

<input type="hidden">

-1

在表单中使用隐藏字段提交newval以及原始值?

我不太确定你为什么要尝试做你正在做的事情。


长话短说,只是修补了一些东西,让它再次正常工作。 - GabiMe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接