Validation 仅当选择了选项时,语义ui表单规则
我正在使用语义用户界面,并试图用它做一些表单验证 我的情况是,用户有两种选择:电子邮件或手机应用程序验证。他们选择其中一个选项并在文本字段中输入任何内容,然后单击提交 但是,我不知道如何使用语义用户界面来处理这些规则 我知道如果我想检查它是否为空白,我可以这样做:Validation 仅当选择了选项时,语义ui表单规则,validation,semantic-ui,Validation,Semantic Ui,我正在使用语义用户界面,并试图用它做一些表单验证 我的情况是,用户有两种选择:电子邮件或手机应用程序验证。他们选择其中一个选项并在文本字段中输入任何内容,然后单击提交 但是,我不知道如何使用语义用户界面来处理这些规则 我知道如果我想检查它是否为空白,我可以这样做: $('.ui.form') .form({ fields: { CODE: { identifier: 'code', rules: [ {
$('.ui.form')
.form({
fields: {
CODE: {
identifier: 'code',
rules: [
{
type : 'empty',
prompt : 'Please enter your verification code'
}
]
}
} } );
但是,我希望根据选择的选项制定其他规则。我有javascript,它当前告诉我所选内容的值,并在更改时更新。但不确定如何将其添加到规则中,这样我就可以像这样——如果选择了phone,则长度必须正好为6个字符,或者如果选择了email,则长度必须为18个字符(不同选项的长度不同)
有没有这样的条件规则?我能找到的壁橱是:
depends: 'id'
检查以确保它不是空的
是否有人知道如何基于另一个表单元素创建这样的条件规则?我使用的是最新版本的语义用户界面,您可以通过
$.fn.form.settings.rules.atlestone=函数(值,字段){
fieldsToCompare=字段。拆分(“,”)
如果(值){
//当前输入不是空的
返回真值
}否则{
//检查其他输入字段
//至少有一个不是空的
至少一个=假
对于(i=0;i
请注意,该函数使用输入id作为标识符,而不是输入名称。你可能还想看看
$.fn.form.settings.rules.atLeastOne = function (value, fields) {
fieldsToCompare = fields.split(",")
if (value) {
// current input is not empty
return true
} else {
// check the other input field(s)
// atLeastOne is not empty
atLeastOne = false
for (i = 0; i < fieldsToCompare.length; i++) {
// gets input based on id
if ($("#" + fieldsToCompare[i]).val()) {
atLeastOne = true
}
}
return atLeastOne
}
}
$(".ui.form").form({
fields: {
number:{
identifier: "number",
rules: [{
type: "exactLength[6]",
prompt: "number has to be 6 chars long"
}, {
// include the input fields to check atLeastOne[email, address, ...]
type: "atLeastOne[email]",
prompt: "Please provide an email or a number"
}]
},
email: {
identifier: "email",
rules: [{
type: "exactLength[18]",
prompt: "email has to be 18 chars long"
}, {
type: "atLeastOne[number]",
prompt: "Please provide an email or a number"
}]
}
}
});