formタグを生成するには、
${h.form(h.url(action='test'))}
としてやります。
そうすると、こんなHTMLが生成されます。
<form action="/makotest/test" method="POST">
multipart=True
という引数を追加してやると
<form action="/makotest/test" enctype="multipart/form-data" method="POST">
enctypeが追加され、ファイルのアップロードが行えるようになります。
ちなみに、start_formというメソッドもありますが、
ソースを見てみると・・・
start_form = form
formと全く同じですね。
h.formだと、formの開始タグしか出力されないので、
${h.end_form()}
で終了タグを出力する必用があります。
selectタグを生成するには
${h.select('select_test', '<option>George</option><option>Yahoo</option>')}
これで、こんな感じのHTMLが出力されます。
<select id="select_test" name="select_test">
<option>George</option>
<option>Yahoo</option>
</select>
selectタグで、第二引数を囲ってくれます。
multiple=True
の引数を追加すると
<select id="select_test" multiple="multiple" name="select_test">
<option>George</option>
<option>Yahoo</option>
</select>
複数選択可能なリストが表示されます。
第二引数にタグを書かないといけないのはめんどくさいですが、
from_optionsを使用するともっとスマートにかけるようにかります。
text_fieldを使用すると、簡単にテキストボックスの
タグが生成できます
${h.text_field('text_test',value='default_value')}
出力されるHTMLはこんな感じ
<input id="text_test" name="text_test" type="text" value="default_value" />
そのほか、指定できるオプションとして
disabled=True
入力不可にする。
size=50
テキストボックスのサイズ
maxlength=10
最大入力値
${h.text_field('text_test',value='default_value',disabled=True,size=50,maxlength=10)}
こうしてやると、出力されるHTMLは
<input disabled="disabled" id="text_test" maxlength="10" name="text_test" size="50" type="text" value="default_value" />
こうなります。
hiddenタグを出力するには
${h.hidden_field('hidden_field',value='hidden_value')}
これで、こんな感じのHTMLが出力されます。
<input id="hidden_field" name="hidden_field" type="hidden" value="hidden_value" />
ファイルの選択欄を生成するには
${h.file_field('file_field',value='file_field_value')}
出力されるHTMLはこんな感じです。
<input id="hidden_field" name="hidden_field" type="hidden" value="hidden_value" />
パスワードの入力欄を生成するには
${h.password_field('password_field',value='value')}
こんな感じのHTMLが出力されます。
<input id="password_field" name="password_field" type="password" value="value" />
最後にテキストエリアは
${h.text_area('area',content='value',size='10x5')}
出力されるHTMLはこうなります。
<textarea cols="10" id="area" name="area" rows="5">value</textarea>
size='[cols]x[rows]'
で指定します。
ちょっとトリッキー
check_boxのタグを生成するには
${h.check_box('check_box_name', value='10')}
生成されるHTMLは
<input id="check_box_name" name="check_box_name" type="checkbox" value="10" />
また、
checked=True
の引数を追加すると、チェックが付いた状態で表示されます。
radio_buttonのタグを生成するには
${h.radio_button('radio_button_name',value='20')}
こんな感じのHTMLとなります。
<input id="radio_button_name_20" name="radio_button_name" type="radio" value="20" />
check_boxと同様に
checked=True
の引数を追加すると、チェックが付いた状態で表示されます。
submitタグを作りたい場合は
${h.submit()}
これだけでOKです。
出力されるHTMLは
<input name="commit" type="submit" value="Save changes" />
値を変更したい場合は・・・
・ボタンの表示名
value=u'保存'
・ボタンの名前
name='commit'
・confirm=u'確認'
ボタンを押した後、Javascriptで確認メッセージを表示
, disable_with=True
ボタンを押した後、ボタンをdisableにする。
なかなか高機能です。