如何将引号输出抑制为HTML实体?

时间:2010-07-01 09:59:34

标签: html perl escaping quotes

$selected = ' selected="selected"'
# or
$selected = qq( selected="selected")

返回为:

selected="selected"

这是一个无效的HTML属性,当然。

我该如何解决?

编辑添加:

<select name="alignment" class="select" 
    <%== param('feature') ? '' : 'disabled'; %>
>
% foreach (keys %al) {
%  my $selected = param('aligment') && param('aligment') eq $_ ? ' selected' : '';
%
%  if (!param('aligment') && $_ eq 'left') { $selected = ' selected' }
%
    <option value="<%=$_%>" <%= $selected %>>
     <%= $al{$_} %>
    </option>
%        
% }
</select>

谢谢!

1 个答案:

答案 0 :(得分:5)

根据Mojolicious Web框架文档,您需要添加和额外= at&lt;%=以便以原始格式打印它。

<%= $selected %>

将是

<%== $selected %>

如需更多参考,请阅读此http://github.com/kraih/mojo/blob/master/lib/Mojolicious/Guides/Rendering.pod

尝试这样:

<select name="alignment" class="select" 
    <%== param('feature') ? '' : 'disabled'; %>
>
% foreach (keys %al) {
%  my $selected = param('aligment') && param('aligment') eq $_ ? ' selected' : '';
%
%  if (!param('aligment') && $_ eq 'left') { $selected = ' selected' }
%
<option value="<%=$_%>"
 <%= $selected %>
>
     <%= $al{$_} %>
    </option>
%        
% }
</select>

<select name="alignment" class="select" 
    <%== param('feature') ? '' : 'disabled'; %>
>
% foreach (keys %al) {
%  my $selected = param('aligment') && param('aligment') eq $_ ? ' selected="selected"' : '';
%
%  if (!param('aligment') && $_ eq 'left') { $selected = ' selected="selected"' }
%
<option value="<%=$_%>"
 <%== $selected %>
>
     <%= $al{$_} %>
    </option>
%        
% }
</select>