jquery val不传递数据
Posted
技术标签:
【中文标题】jquery val不传递数据【英文标题】:jquery val not passing data 【发布时间】:2016-03-31 18:18:41 【问题描述】:我有几个输入字段和这样的 jquery 代码:
jQuery(document).ready(function($)
$('input').change(function()
var amount1=$('.product-addon-wesprzyj-autora input').val();
var amount2=$('#pa_kategoria-cenowa').val();
var amount3=$('.quantity .qty').val();
var fractal=0.01;
var Total=(amount1*amount2*fractal*amount3)+(' PLN');
$('.product-addon-kwota-dla-autora input').attr('value', Total);
);
);
奇怪的是 jquery 代码可以工作。在我的输入中实时更改值,但在单击 sumbit 后,来自“.product-addon-kwota-dla-autora input”的值在数据库中似乎为空。这是为什么?有什么方法可以推动这个代码工作吗?如果我将通过键盘数据输入该字段,一切正常。有什么想法吗?
【问题讨论】:
你能附上你的提交代码吗? 在 wordpress 中使用 woocommerce 插件会非常困难。但我认为我的 jquery 代码有问题 - 输入的值与 jquery 生成的值不同,这太荒谬了。 jquery 是纯粹的前端,它不负责将数据保存到数据库中。 【参考方案1】:根据您提供的代码,我不太确定您的问题是什么。这可能是您将数据保存到表中的服务器端代码中的问题。您需要调试并找出答案。
但请确保您正确设置表单值,以便您的服务器端代码从表单中获得正确的数据。您可以考虑使用val()
方法来设置值。
$('.product-addon-kwota-dla-autora input').val(Total);
另外,当您从表单输入中读取值并将其用于数值运算时,请考虑使用 parseFloat()
或 parseInt()
将类型转换为数值版本
var Total=parseFloat(amount1)*parseFloat(amount2)*parseFloat(fractal)
*parseFloat(amount3)+(' PLN');
此外,您可以检查浏览器的网络选项卡以查看您的浏览器将哪些数据发布到服务器代码。这应该可以帮助您了解问题出在哪里。
【讨论】:
【参考方案2】:您的“Total”变量可能为空。 alert('Total') 并检查结果。如果它显示出一些价值,那么尝试从这里改变你的行
$('.product-addon-kwota-dla-autora input').attr('value', Total);
进入这个
$('.product-addon-kwota-dla-autora input').val(Total);
【讨论】:
以上是关于jquery val不传递数据的主要内容,如果未能解决你的问题,请参考以下文章