0

我正在使用带有 HTML 的 Perl(和 Dancer)来创建一个表单。在我的表单上,我有一些这样的字段:

<input type="text" name="keywords" id="keywords" value="<% keywords | html %>"/>

<select multiple="multiple" id="sentences" name="sentences" size="3"/>
    <% IF list_of_sentences %>
         <% FOREACH sentence IN list_of_sentences %>
              <option value=<% sentence %>/>
         <% END %>
    <% END %>
</select>

当然,这些是在他们自己的部门内部,周围还有更多代码,但这些是我所拥有的基本内容。

这些是main.tt与使用交互的,myApp.pm并且有来回传递的参数(例如keywordslist_of_sentences这里)。代码设置了两个 div,一个带有表单,另一个纯粹用于显示输出。提交表单后,输出显示正确,但不保留选择字段选择。

因此,我想要做的是使“多项选择”中的选定选项保持选中状态。

例如,在我的“输入”关键字字段中,我保留了该值,因为它已使用using从.pm文件传回。这适用于 html 代码。我尝试使用 对多重选择执行相同的操作,但这会返回一个空白字段。param("keywords")template 'main' ...value="<% keywords | html %>"param("sentences")

冒险猜测这个问题是因为有不止一个选项,也许是因为我从.pm文件中获取选项开始,但我还没有找到解决方案,所以欢迎任何帮助。

4

1 回答 1

2

您想selected="selected"在 option 元素上使用该属性。我建议同时传递句子的名称和标志,说明选项是否应处于选定状态。例如:

<% IF list_of_sentences %>
  <% FOREACH sentence IN list_of_sentences %>
    <option value="<% sentence.value %>"<% IF sentence.is_selected %> selected="selected"<% END %> />
  <% END %>
<% END %>

并为您的句子使用以下数据结构:

{ value => $value, is_selected => 0|1 }
于 2013-03-04T16:22:59.087 回答