【发布时间】:2013-12-13 03:37:03
【问题描述】:
我保证...我已经对此进行了超过 24 小时的研究。我知道它与其他一些问题相似(如果不完全相同)。我显然错过了一些东西。 (这将是一个冗长的解释......我道歉。请不要让它吓到你......我很确定根本问题/问题会比这一切看起来容易得多! )
期望的最终结果是让一些 JS 变量从 HTML 表单发布到我的进程 PHP 脚本。很简单吧?
我有一个功能齐全的表单,它使用 一堆 输入字段进行大量计算...这里发布太复杂了...更不用说我真的不想要让自己对我确定是非常糟糕的编码感到难堪!
简而言之...我有一个在运行过程中设置各种 JS 变量的函数。我需要将这些变量插入到一些隐藏的输入字段中,以便它们与所有“正常”输入一起转移到我的处理 PHP 中。所有这些变量都代表浮点数(如果有任何差异)
这是我的表单定义:
<form id="multiForm" action="App_post.php" method="POST" action="javascript:void(0)" id="appform" name="appform">
我有一个“主”函数,它主要根据用户选择各种单选按钮的时间来启动所有计算。当用户选择按钮时,各种选择器在表单中动态更新(实际上是用户选择俱乐部会员费和“附加”项目的不同选项......有人一定会问我在做什么!)
$(function () {
...lots of JS code here along with the calculations that create the JS vars I need
}
(我假设这个函数是通过 action="javascript:void(0)" 调用的)
现在让我们只关注一个 var。完成所有计算后,JS var "regularfee"(以及我想要的所有其他人)就存在了。我需要将这些值插入隐藏字段,以便发布。
以下是隐藏字段的示例:
<input type="hidden" name="regularfee" id="regularfee" value="">
这就是我迷路的地方。在所有计算完成后,我在函数中做了一个 console.log(regularfee)...它设置为浮点数 26.5(这是正确的)
到目前为止,我尝试了以下几件事:
document.getElementById('regularfee').value=regularfee;
// --OR--
document.getElementById('regularfee').value=regularfee.value;
document.getElementById("app").submit();
无论我尝试了什么,都会将空白值发布到我的 PHP 进程中。根据我看到的其他问题,隐藏输入字段方法似乎是执行此操作的“公认”方法之一。我没有坚持这种方法......只是寻找最简单的方法来发布我的变量!我错过了什么?非常感谢所有帮助!
【问题讨论】:
-
控制台上是否出现任何 JavaScript 错误?
-
如果你打开控制台,输入 document.getElementById('regularfee') 会打印什么?
-
@Jack - 没有 JS 错误......正如我所说的那样,表单在当前模式下“工作”很好。问题只是试图让变量“out”
-
@nycynik - console.log 在所有计算完成后的某个时间点显示正则费用的正确值是 26.5
-
@nycynik - 抱歉......请仔细阅读您的问题......我最初只是在控制台中检查常规费用。 document.getElementById('regularfee') 显示为空
标签: javascript html forms input hidden