[PHP-users 29018] HTML_QuickForm での日付の大小チェック

Yamada Kenichi yamada_ken1232 @ yahoo.co.jp
2006年 4月 19日 (水) 11:32:36 JST


 みなさん、こんにちは。

 開始日≦終了日チェックって、よくあると思うのですが、
 以下のテストコードが思うように機能してくれません。


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>compareの確認</TITLE>
</HEAD>
<?php
// http://localhost/comptest.php

	require_once "HTML/QuickForm.php";

	$title = "compareの確認";
	$btntitle = "compareの確認";

	// フォーム表示
	$form = new HTML_QuickForm('frm', 'post');
	$form->addElement('header', 'Header1', $title);

	$form->addElement('text', 'USER_NAME','ユーザー名');
	$form->addElement('date', 'CDATE', '日付1');
	$form->addElement('date', 'CDATE2', '日付2');
	$form->addElement('submit', 'btnSubmit', $btntitle);

	// 必須項目設定
	$form->addRule('USER_NAME', '入力が必要です', 'required');
	$form->addRule('CDATE', '入力が必要です', 'required');
	$form->addRule(array('CDATE', 'CDATE2'), 
			"日付1<=日付2で入力してください。", 
			'compare', '<=', 'server');
	// 必須項目メッセージ設定
	$form->setRequiredNote ('<font color=red>*</font>必須項目です'); 

	$form->validate();
	$form->display();
////////////////////////////////////////////////////////////////////////
?>
</HTML>

dateでなく、textならうまく機能します。
また、dateのときも '<=' の代わりに '==' なら機能します。

 これは「仕様」と思ってあきらめるしかないのでしょうか?
 「仕様」だとすると、うまい回避方法はないでしょうか?

---------------------------------------
山田健一


PHP-users メーリングリストの案内