0

寻找有关实施以下内容的最佳方法的建议:

我在准备我的动作课时有一个哈希图。这个 hashmap 有两个值,FruitType 和一个 Boolean。可用的水果类型取决于使用屏幕的人。布尔值还取决于使用屏幕的人。

在我的 JSP 中,我有两种形式:

第一个表单有一个<s:select>包含可用水果类型的列表。仅当对应于水果类型的布尔值为真时,才需要第二种形式。如果布尔值为 true,则启用第二个表单,禁用第一个表单上的提交按钮。如果布尔值为 false,则禁用第二个表单并启用第一个表单上的提交按钮。

通过javascript启用/禁用我没有问题。我的问题是在哪里存储布尔值......我有一个隐藏的输入(isSecondFormReq)和我的选择列表上的一个帖子(在选择一个值时触发)在第一种形式中确定水果布尔值是否为真或错误,但我无法更新隐藏输入字段的值...

有没有人有更好的方法来做到这一点?

多谢了。

编辑:我认为最好的方法可能是使用<s:iterator>并隐藏 id=key 和 value=value 的字段...任何帮助将不胜感激:)

4

1 回答 1

0

最后读了三次,我猜你自己已经提出了一个解决方案,如果 FruitType 你可以使用你提到的解决方案,即

create a map for fruittype,boolean and then iterate over it in the JSP, so that the 2nd form gets displayed based on the value of the selected fruittype and it's corresponding boolean

我不知道你是如何实现javascript的,但我想为了这个答案的完整性,我会提供一个小样本。

<select name="fruit" id="fruit">
<s:iterator value="mapFruitBoolean">
   <option value="fruit.key" data-boolean=<s:property value="value"/>>>Fruit.value</option>
<!-- Above fruit refers to the key of the map, and value is just a boolean
Map<Fruit,Boolean> -->
</s:iterator>
</select>

Javascript代码

$("#fruit").change(function(){
    var option = $(this).find('option:selected');
    if($(option).attr('data-boolean')){
       //Enable the submit button
    }else{
     //Disable the submit button
    }
});

上面的代码未经测试,但我想它应该可以正常工作,尽管我想它清楚地解释了这个概念。

于 2013-08-01T18:42:51.293 回答