【问题标题】:How to get custom value from text field in JSP?如何从 JSP 中的文本字段中获取自定义值?
【发布时间】:2009-07-31 07:27:28
【问题描述】:

我正在开发一个非常简单的小型 Web 应用程序,它是一个处理购物车的 jsp。

此时我要做的是遍历存储在汽车中的所有产品,并在每次迭代时将它们一一添加到jsp中。

这是在每次迭代中向 jsp 中添加一行的代码:

            <tr>        
            <td>
                <input type=text name=Quantity value=<%=quantity%>>
            </td>
            <td>
                <input type=text name=id value=<%=id%>>                 
            </td>
            <td>
                <input type=submit value="Delete" onclick=<%CustomSubmit(request,  id); %>>
            </td>
        </tr>

如您所见,我在每一行的末尾添加了一个提交类型控件,该控件具有用于处理 Click 事件的自定义方法,该控件的用途是从汽车中删除相应的产品。

我遇到的问题是,当我单击产品的删除按钮时,传递给 CustomSubmit(...) 方法的 ID 不是我要删除的产品的 ID,而是添加到 jsp 中的最后一个产品的 id。

所以,我的问题是如何从我要删除的项目中获取正确的 ID?

【问题讨论】:

  • 你是如何遍历购物车中的每件商品的?
  • 我把它们放在一个 ArrayList() 中,该 ArrayList() 包含在位于会话范围内的 Java Bean 中。

标签: java javascript jsp


【解决方案1】:

我的做法如下:

替换

<input type=submit with a button
<input type="button" value="Delete" onclick="deleteIt('yourid');" />

添加 deleteIt javascript 函数,在函数中使用 id 填充隐藏的输入字段。 然后提交页面,正确的 id 就会传递给你的页面

小旁注总是谨慎地逃避所有字符串

dont use <input type=submit but use <input type="submit" 

也许像

  <td>
<input type="text" name="id" value="<%=id%>">
  </td>
<td>
<input type="button" value="Delete" onclick="deleteItem('<%=id%>')">
</td>

【讨论】:

  • 感谢旁注,我会做的,现在关于您的建议,我了解 javascript 函数部分,但是您如何获取“yourid”变量,因为我正在动态添加行,并且我不知道用户想要删除的产品中的哪个 id,该 id 包含在行的列中,但我不知道如何获取它...
【解决方案2】:

我假设您的购物车是一个对象列表,每个对象都有属性 id 和数量。所以我希望你的代码看起来像这样(注意彼得关于使用“按钮”的回答):

<input type="button" value="Delete" onclick="CustomSubmit('<%=cartItem.id%>');"/>

我不完全确定您要对原始代码中的“请求”参数做什么,但如果这是 HTTP 请求,当您尝试将其写入 JSP 时,您将得到的只是request.toString 方法。

【讨论】:

  • 好吧,其实你可以忽略请求参数,此时不重要;正如你所说,这正是我的工作方式,但问题是当事件被触发并执行此代码“CustomSubmit('')”时,我不'没有从我要删除的项目中获取“cartItem.id”,我从添加到 jsp 的最后一个项目中获取“cartItem.id”。一种解决方案是尝试从列表中获取“cartItem”,但为此我需要知道我要删除的项目的行号,而且我也不知道如何获取行号
  • 当您在浏览器中查看页面源时,表格中的每一行是否具有相同的 id?如果是这样,问题不在于此代码,而在于迭代逻辑或购物车项目对象。如果没有,那么您的 JavaScript 有问题,是时候破解 Firebug 并看看发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多