我在让客户端部分工作时遇到了问题。我遇到的第一个问题是,它只加载quickform.js脚本,而不是其他两个。所以我现在在头部加载它们。但我的问题仍然是表单只验证客户端。我觉得我好像错过了一些明显的东西??
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;发布于 2013-03-26 16:02:33
使用JavascriptBuilder的要点是只有在需要时才加载库,因此只有在使用相应的元素时才会加载“其他2”(hierselect和repeat)。
至于“仅验证客户端”,您可能指的是“服务器端”,而addRule()缺少一个参数:
$name->addRule('required', 'Please enter your name', null, HTML_QuickForm2_Rule::CLIENT_SERVER);https://stackoverflow.com/questions/15283355
复制相似问题