隐藏表单字段值没有真正改变
Hidden form field value not really changed
在下面的代码中,为什么我在最后的alert()中获得新值,而在表单提交时(以及在使用firebug查看隐藏字段时)获得旧值?
表单标签中的隐藏字段元素:
<input type="hidden" id="shipping_1" name="shipping_1" value="3.99">
当ShipTo下拉菜单被选中时,jQuery被用来更新字段值:
$('#ShipSelect').change(function(e) {
var ss = $('#ShipSelect').val();
if (ss=='International') {
alert("International orders add $10 S&H");
ship1 = ($('#shipping_1').val())*1 + 10;
alert('Shipping_1 val is now: ' + ship1);
$('#shipping_1').val(ship1);
alert('Reading the field directly: ' + $('#shipping_1').val());
}
});
警报显示$10已添加到隐藏字段值。到目前为止一切顺利。
然而,当DOM被查看Firebug(或在Chrome DevTools模式)和/或当BuyNow按钮被按下时,shipping_1
字段是在旧值($10短)。
更新:我看到了这个有前途的帖子,它准确地描述了我的问题,但解决方案没有工作。这是他们的建议:
document.form_name.field_name.value = your_value
因此,我注释掉了这一行:
$('#shipping_1').val(ship1);
并替换为:
document.paypal_cart.shipping_1.value = ship1;
结果和我现在的没有什么不同。旧的值仍然被提交(并且在使用firebug查看时是可见的)。我是否需要使用。on()以某种方式"修复"更改的值到表单或其他东西?
http://jsfiddle.net/PeT66/1/
简化了一点,我想你漏掉了右括号
$('#ShipSelect').change(function(e) {
var ss = $('#ShipSelect').val();
alert("International orders add $10 S&H");
ship1 = ($('#shipping_1').val())*1 + 10;
alert('Shipping_1 val is now: ' + ship1);
$('#shipping_1').val(ship1);
alert('Reading the field directly: ' + $('#shipping_1').val());
});
相关文章:
- 所选表单-当表单的值被选中时,如何更改变量值
- 如何正确地改变输入表单的值以引起“注意”;改变“;事件
- javascript不改变表单中的字段的简单数学
- 触发标准“;改变“;表单对象上的事件-由其上的任何侦听器拾取
- 使用javascript在iframe中发布表单,但iframe源不会随着文件的增大而改变
- 如何使url改变适当的单页jQuery登录,注册和忘记密码表单
- Rails:使用image_submit_tag改变表单在悬停时提交图像
- JS代码改变表单提交不工作
- 简单的方法使用getElementsByTagName来改变表单目标
- 改变表单目标,重定向现有iframe
- 如何从拖放改变表单的值
- 为什么Firefox在从javascript加载时改变表单标签属性?
- jQuery根据所选值改变表单动作
- 简单的方式来改变输入字段的视觉顺序动态(不改变表单HTML)
- AngularJS在提交事件上改变表单动作
- jQuery改变表单的响应文本
- 通过JQuery改变表单标签上的标签
- ExtJs改变表单面板按钮的布局
- Javascript OnSubmit不会'改变表单的动作
- 不能通过jquery改变表单动作