2011-05-06 69 views
9

但没有新的值显示在表单中的丑陋效果。jQuery:如何在提交之前修改表单字段

,如果我这样做:

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

的#字段1会显示(一秒钟)的新值这是一种丑恶..

+0

看起来你可能会把逻辑放在你不太需要的地方。你究竟想达到什么目的?该具体操作背后的目的/推理是什么? – Christopher 2011-05-06 10:40:33

回答

15

从上面的代码,它看起来像你完全无视可见的窗体元素的值,如果是的话,为什么不干脆把一个隐藏的表单字段与您所使用的名称,而忽略了什么贴通过从文本字段。

相反,如果代码是不是真实的,你打算修改该值,而不是,你可以使用相同的技术,这样的事情:

<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

但是,如果您在表单中按Enter键,则不会解决此问题。 – 2015-09-27 16:05:59

+0

我相信这可以用于点击按钮*或*按回车键:'$('#form1')。submit(function(){...});' – 2017-12-28 18:59:06

+0

@StephenR它确实会,但我不会确保'#submit_button'是一个真正的提交按钮,因此它提交了表单(为什么我没有回复马特超出范围) – 2018-01-02 08:28:25

-1

使用一个隐藏字段的形式提交newval连同原始值?

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

+0

长话短说。只是修补了某些东西在被破坏后再次工作 – GabiMe 2011-05-06 10:40:31

0

为什么不使用隐藏字段?

<input type="hidden"> 
相关问题