2012-03-02 96 views
0

我是Java servlets的新手。我正在使用servlet创建一个html页面。在不同的字段中,我有一个文本框字段,显示已用时间。造成这种情况的代码是在这里:请求getParameter返回null的文本

<input type="text" size="15" disabled="disabled" hidden="true" name="finalduration"> 

我有一个计算,并输入“finalduration”文本框中的值,使JavaScript文件它隐藏=“假”,一旦提交按钮被按下。

然而,早在servlet中,我试图处理由JavaScript输入的值,我得到一个“空”。在servlet的代码,我使用获得的值是:

durationBar = (String)request.getParameter("finalduration"); 

的想法是,JavaScript的计算所经过的时间,进入过去的时间(或持续时间)在“finalduration”框,我servlet应该处理该值并进入数据库。我可以从这个页面读取其他值(包括组合框,下拉列表等),这是我无法获得的唯一值。

任何想法如何处理这个问题?

编辑 我删除了“禁用”,它现在起作用。

,我想在这里实现的想法是一个计时器吧。人来到我的网站,点击“开始时间”,计时器启动并显示在屏幕上。在计时器运行期间,“延期”被隐藏。一旦用户点击“停止计时器”,持续时间就会使用javascript进行计算,最终持续时间将显示在页面上的“延期”文本字段中。这就是为什么我想以这样的方式实现用户不能编辑finalduration的原因,因为它会破坏计算持续时间的目的。

关于如何实现任何想法,将不胜感激。

+0

他们是围绕你的'input'输入的'form'吗? – 2012-03-02 22:37:18

+0

你的'finalduration'必须在一个'form'里面,指向你的servlet的动作 – 2012-03-02 22:46:07

+0

对不起,忘了提这个。所有这些代码都在指向servlet的“form”标签内。这就是我从其他元素获取价值的方法,除了这一点。 – BlueChips23 2012-03-02 22:50:30

回答

1

残疾人表单域不会被用户代理according to the HTML specification提交。只要删除disabled属性(它对隐藏的字段没有多大意义),它应该可以工作。

更新:正如它指出的,你没有正确隐藏该字段。正确的标记是:

<input type="hidden" name="finalduration"> 

然而,正如我已经说过的,用户仍然可以修改值并提交他们想要的任何值。 而不是使用隐藏字段(或任何其他表单字段)来存储您不希望恶意用户修改的值。

+0

@deporter对不起,当我开始写答案时,你的评论并不存在。无论如何,至少现在也有对相关规范的参考。 – biziclop 2012-03-02 23:09:53