2016-09-27 8 views
0

HTML::Elementを使用して値のない属性でHTML要素を作成するにはどうすればよいですか?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

"チェックされた属性には通常値がありません"ブール値のHTML属性では値はオプションです。 'checked =" checked "または単に' checked'を実行することができます。 – ThisSuitIsBlackNot

+0

あなたは私の質問に答えていません。 –

+0

私は '$ h-> attr(checked => 'checked');を使って、あなたが望むものと同等のHTMLを得ることができると言っています。 – ThisSuitIsBlackNot

答えて

2

EDIT:ThisSuitIsBlac上記の正しい解決策はありません。

$h->attr (checked => 'checked'); 

彼が答えとしてそれを加えたら、私は私のことを削除します。しかし、どのようにドキュメントからそれを派生させることができるか分かりません...もしどこかにあるとすれば、誰かに私にそれを指摘させてもらいたいです。

OLD SOLUTION: ない完璧なソリューションが、私はそれが次のことをやって動作するようになった:

<input checked name="field" type="checkbox" /> 

が、やってのより良い方法がなければならない。これを生成

use HTML::Element; 
my $h = HTML::Element->new ('input', 'checked'); 

$h->attr (type => 'checkbox'); 
$h->attr (name => 'field'); 

print STDOUT $h->as_HTML, "\n"; 

これは....

CPANのマニュアルには、次のように記載されています。

属性をundefに設定すると(実際には ""、空の 文字列)、属性が削除されます。

$h->attr ('checked');は機能しませんが、要素作成後に値以外の属性を追加する方法が必要です。それをどうやって行うのかは明らかではない(少なくとも私には)。

関連する問題