我有一个下拉列表(从对象填充的值),从中选择的值将继续到下一页。但是,如果选择了该值,则该对象的另一个属性应该转到下一页。
我目前的代码是:
<select name="ElementName" class="dropdown"
id="ElementsDropDownList">
<isloop iterator="ELEMENTS">
<option value="#ELEMENTS:ElementName#"><isprint
value="#ELEMENTS:ElementLabel#">
</option>
</isloop>
</select>
我想要类似的东西:
<select name="ElementName" class="dropdown"
id="ElementsDropDownList">
<isloop iterator="ELEMENTS">
<option value="#ELEMENTS:ElementName#"><isprint
value="#ELEMENTS:ElementLabel#">
</option>
<input type="Hidden" name="extraField" id="extraFieldUUID" value="<isprint
value="#ELEMENTS:ElementValue#">">
</isloop>
</select>
此处循环内的输入字段无效。
答案 0 :(得分:0)
input
元素中内的select
元素不能存在。它必须是分开的:
<select name="ElementName" class="dropdown" id="ElementsDropDownList">
<isloop iterator="ELEMENTS">
<option value="#ELEMENTS:ElementName#">
<isprint value="#ELEMENTS:ElementLabel#">
</option>
</isloop>
</select>
<input type="Hidden" name="extraField" id="extraFieldUUID" value="<isprint value="#ELEMENTS:ElementValue#">">
然而,显然这在你的情况下不会起作用,因为这不在循环中。您需要另一个循环,这意味着每个 ElementValue
值都将包含在表单中。那是......不好。
听起来你正在尝试实现的是select
两个值。它并没有真正做到这一点,几乎就是设计。我现在可以想到两个选择:
input
元素之外添加隐藏的select
,但不要为其设置值。在JavaScript中包含可能值的列表(作为某种哈希表,很可能是使用ElementName
作为键)。然后将事件处理程序附加到select
元素的change
事件,该事件根据新选择的值设置隐藏的input
值。 或,将select
中的两个值都包含在分隔的字符串中,然后将其解析为接收页面上的单独值。也许是这样的:
(我完全猜测语法,因为我对你正在使用的模板工具一无所知。)然后接收页面上的代码会收到一些分隔的字符串,某些东西像:
"SomeElement|123"
然后,该代码需要将该字符串解析为其两个组件值。