通过Javascript传递隐藏的表单元素集

时间:2010-07-15 16:21:24

标签: javascript jquery html input hidden

我有一个简单的HTML表单,其中包含一些用于发送SMS / TXT消息的输入字段。我还有一个jQuery脚本,可以计算输入的字符数,还可以计算出将使用多少个SMS Credits来发送消息。

它们出现在div中,如下所示:

<div id='message'> 
<span id='char'>0</span> characters, 
<span id='msgs'>0</span> SMS Credit(s)
</div>​​​​

你可以在http://jsfiddle.net/gHAcM/看到整个页面减去大部分的php(只是为了简单起见)

我想要做的是包括字符数(从0开始)和信用数(从0开始)

我不确定是否可以这样做,否则我需要通过php处理页面再次计算这些值,如果他们不能。只是试图避免两次做同样的事情,一次是在Javascript中再一次在PHP中。

非常感谢, 史蒂夫

2 个答案:

答案 0 :(得分:5)

可以做到。你需要做的就是创建一些隐藏的输入元素(例如<input type="hidden" name="characterCount" />,并在计算它们时将值放在那里。但是你不应该这样做(因此没有代码 - 我不想知道鼓励你)。

你总是应该在服务器上计算这样的任何重要事项,因为从理论上讲,用户可以发布他们想要的任何内容,这样他们就可以改变他们的请求,说“credits = 0”而你不想信任。或者如果他们弄乱了字符数,那么大概会因为收到太长的输入而导致某些东西崩溃......或许他们告诉你它的字符数为负数......只需在服务器上重新验证即可。它的方式去。 :)

答案 1 :(得分:0)

您可以创建一些隐藏字段并将计数放在那里以及在跨度中,然后使用表单提交它们。但是,通过伪造具有假字符和信用计数的http请求,可以轻松地对该系统进行游戏,因此您可能仍希望在服务器上进行计数以避免欺诈。此外,如果用户关闭了javascript,则计数将为零。

要在现有

的情况下执行此操作
$chars.text(len);

添加

$("#my_hidden_char_count").val(len);

假设你有

<input id="my_hidden_char_count" value="0"></input>

在您的表单中。为积分做同样的事。