在基于用户输入的验证链执行过程中,可以添加新的验证器吗?
例如:假设我们有,它指定范围1.10中的输入数。
<label><input type="radio" name="number" id="number-1" value="1">1</label>
[...]
<label><input type="radio" name="number" id="number-10" value="10">10</label>在这个字段之后,有10个没有"notEmpty“验证器的文本输入,它们被隐藏在jquery中,直到用户单击其中一个收音机,所以如果用户选择1而不是5或10,表单将进行验证。
我的问题是,在验证无线电字段的过程中,我是否可以根据所选的无线电值,将验证器设置为指定的文本输入,例如,在我的自定义验证器中。
我以前的想法是创建自定义验证器,并将其应用于每个文本输入。
发布于 2014-05-12 14:34:57
是的,你可以,但你需要定义哪个无线电选择有哪个验证器。
可能在您的Action或直接在您的Zend_Form中。
您可以在您的表单中覆盖isValid()方法,给出了示例。
或者,在表单元素的addValidator()之后,首先检查收音机的值。
示例
$form = new Application_Form_Test();
$radio = $this->_getParam('radio','default_value');
if($radio=='default_value') {
$form->myfieldid->addValidator('NotEmpty');
}
if($form->isValid($this->getRequest()->getPost())) {
//valid form!
}发布于 2014-05-12 14:33:15
将<input>字段设置为具有与单选按钮一样的一致命名方案。然后尝试这样的方法:
$(":radio").on("click", function() {
var textInputName = $(this).id + "text";
//Perform validation
});这里的想法是,您的文本输入将命名为<input type="text" id="number-1text" />等,这样您就可以通过将其与单击的单选按钮的id关联起来,轻松地使用上面的代码调用正确的输入。
https://stackoverflow.com/questions/23611664
复制相似问题