如何使用HTML::Element创建一个缺少值的属性的HTML元素?
例如,checked
属性通常没有值,如下所示:
<input checked name="field" type="checkbox" />
但是,下面的示例为我们提供了一个checked
属性,其中包含一个空字符串作为值:
<input checked="" name="field" type="checkbox" />
代码:
use HTML::Element;
my $h = HTML::Element->new ( 'input' );
$h->attr ( type => 'checkbox' );
$h->attr ( name => 'field' );
$h->attr ( checked => '' );
print STDOUT $h->as_HTML, "\n";
答案 0 :(得分:2)
编辑:ThisSuitIsBlack上面没有正确的解决方案:
$h->attr ( checked => 'checked' );
有效。如果他把它作为答案添加,我会删除我的。不知道怎么可以从文档中得到它,但是......如果它出现在某个地方,我很乐意让别人指出它。
旧解决方案: 这不是一个完美的解决方案,但我让它做了以下工作:
use HTML::Element;
my $h = HTML::Element->new ( 'input', 'checked' );
$h->attr ( type => 'checkbox' );
$h->attr ( name => 'field' );
print STDOUT $h->as_HTML, "\n";
产生这个:
<input checked name="field" type="checkbox" />
但必须有更好的方法来做到这一点......
CPAN文件说明如下:
请注意,将属性设置为undef(而不是&#34;&#34;,为空 string)实际上删除了属性。
这是$h->attr ('checked');
无法工作的原因,但必须有一种方法可以在元素创建后添加非值属性。对于如何做到这一点并不明显(至少对我而言)。