表单元素根据条件要求(Happy.js)

时间:2013-04-25 22:53:26

标签: javascript jquery validation

我正在尝试使用Happy.js验证表单客户端。

基本验证工作正常,但我需要稍微复杂一点,我需要验证它有点复杂。基本上,有一个是/否单选框,如果是,则显示更多输入标签。如果单选按钮为是,则仅需要这些标签,否则不需要这些标签。

有没有人对如何做到这一点有任何建议?我想将它们设置为非必需,然后创建一个快乐的函数,如果输入为空并且单选按钮设置为是,则返回false。

这样的事情:

"#input":{
    required: false,
    message: "required",
    test: happy.needed(parameter)
}

感谢。

1 个答案:

答案 0 :(得分:3)

正如文档所说,您可以将'sometimes'传递给required,这将使Happy始终运行测试功能。

对于测试函数,我们只返回jQuery / Zepto is的值。

"#input":{
    required: "sometimes",
    message: "Custom message",
    test: function(input){ 
      return $(input).val() !== '' && $('#radioButton').is(':checked');
    }
}

如果你不确定发生了什么,他们给happy.email的例子可能会让人感到困惑。 JavaScript中的函数是第一类,这意味着您可以像变量一样传递它们。

所以如果我们写的话:

var isRadioButtonChecked = function(input) {
  return $(input).val() !== '' && $('#radioButton').is(':checked');
}

然后在我们的验证规则中,我们可以写:

"#input":{
    required: "sometimes",
    message: "Custom message",
    test: isRadioButtonChecked
}

这会更简洁一些。