2013-03-07 14 views
0

我无法使客户端部分工作。我遇到的第一个问题是,它只加载quickform.js脚本,而不是其他2.因此,我现在将它们加载到头部。但仍然是我的问题是表单只验证客户端。我觉得我缺少一些明显的东西?HTML_quickform2 javascript

require_once('HTML/QuickForm2.php'); 
require_once ('HTML/QuickForm2/Renderer.php'); 
require_once ('HTML/QuickForm2/JavascriptBuilder.php'); 

$form = new HTML_QuickForm2('uploads'); 
$fieldset = $form->addElement('fieldset'); 
$name = $fieldset->addElement('text', 'name', array('size' => 50, 'maxlength' => 255))->setLabel('Enter your name:'); 
$fieldset->addElement('submit', null, array('value' => 'Send!')); 
$name->addFilter('trim'); 
$name->addRule('required', 'Please enter your name'); 
if ($form->validate()) { 
echo '<h1>Hello, ' . htmlspecialchars($name->getValue()) . '!</h1>'; 
exit; 
} 
$renderer = HTML_QuickForm2_Renderer::factory('default'); 
$renderer->setJavascriptBuilder(new HTML_QuickForm2_JavascriptBuilder('js/quickform2')); 
$form->render($renderer); 
foreach ($renderer->getJavascriptBuilder()->getLibraries() as $link) { 
echo $link . "\n"; 
} 
echo $renderer; 
+0

你是什么意思与“仅验证客户端”? – cweiske 2013-03-11 07:14:55

回答

1

使用JavascriptBuilder的点是在需要时只加载库,所以“其他2”将只当使用相应的元件(hierselect和重复)加载。

至于“只验证客户端”你大概的意思“服务器端”和你缺少一个参数addRule():

$name->addRule('required', 'Please enter your name', null, HTML_QuickForm2_Rule::CLIENT_SERVER);