首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于用户输入ZF 1设置验证器

基于用户输入ZF 1设置验证器
EN

Stack Overflow用户
提问于 2014-05-12 14:25:38
回答 2查看 59关注 0票数 2

在基于用户输入的验证链执行过程中,可以添加新的验证器吗?

例如:假设我们有,它指定范围1.10中的输入数。

代码语言:javascript
复制
<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,表单将进行验证。

我的问题是,在验证无线电字段的过程中,我是否可以根据所选的无线电值,将验证器设置为指定的文本输入,例如,在我的自定义验证器中。

我以前的想法是创建自定义验证器,并将其应用于每个文本输入。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-12 14:34:57

是的,你可以,但你需要定义哪个无线电选择有哪个验证器。

可能在您的Action或直接在您的Zend_Form中。

您可以在您的表单中覆盖isValid()方法,给出了示例。

或者,在表单元素的addValidator()之后,首先检查收音机的值。

示例

代码语言:javascript
复制
$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!
}
票数 1
EN

Stack Overflow用户

发布于 2014-05-12 14:33:15

<input>字段设置为具有与单选按钮一样的一致命名方案。然后尝试这样的方法:

代码语言:javascript
复制
$(":radio").on("click", function() {

    var textInputName = $(this).id + "text";

    //Perform validation

});

这里的想法是,您的文本输入将命名为<input type="text" id="number-1text" />等,这样您就可以通过将其与单击的单选按钮的id关联起来,轻松地使用上面的代码调用正确的输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23611664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档