我正在尝试使用Happy.js验证表单客户端。
基本验证工作正常,但我需要稍微复杂一点,我需要验证它有点复杂。基本上,有一个是/否单选框,如果是,则显示更多输入标签。如果单选按钮为是,则仅需要这些标签,否则不需要这些标签。
有没有人对如何做到这一点有任何建议?我想将它们设置为非必需,然后创建一个快乐的函数,如果输入为空并且单选按钮设置为是,则返回false。
这样的事情:
"#input":{
required: false,
message: "required",
test: happy.needed(parameter)
}
感谢。
答案 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
}
这会更简洁一些。