我有以下(基本)语义形式检查设置:
$('#form_login').form({
fields: {
username: {
identifier: 'username',
rules: [{
type: 'empty',
prompt: 'Please enter your user name'
}]
},
password: {
identifier: 'password',
rules: [{
type: 'empty',
prompt: 'Please enter your password'
}]
}
}
});
按照宣传的方式工作,但我希望prompt
文字动态定位 - 访问时。
我该怎么做(因为它不接受函数引用)?
答案 0 :(得分:1)
我认为提示文本只能在当前版本(2.1)中静态设置。我试图做类似的事情,我发现最好的方法是打破规则,以便每个动态结果都由自定义规则处理。
例如,我创建了一个表单,用户可以更新其密码。如果没有在“当前密码”中输入任何输入,我希望表单可以提交。字段,以及其他遵守通常的密码规则(新密码可以与旧密码相同,最小长度为6)。在我的表单字段中,我设置了如下规则:
currentPassword: {
identifier: 'currentPassword',
optional: true,
rules: [{
type: 'empty',
prompt: 'Please enter your current password'
}]
},
newPassword: {
identifier: 'newPassword',
rules:[{
type: 'newPasswordMinLength',
prompt: 'Password must be at least 6 characters long!'
},{
type: 'newPasswordDifferent',
prompt: 'New password must be different from your current one'
}]
},
repeatPassword: {
identifier: 'repeatPassword',
rules: [{
type: 'repeatPasswordMatch',
prompt: 'Password does not match'
}]
然后我定义了这些自定义规则:
var currentPassElement = $('[name="currentPassword"]');
var newPassElement = $('[name="newPassword"]');
$.fn.form.settings.rules.newPasswordMinLength = function(value) {
var currentPassValue = currentPassElement.length > 0 ? currentPassElement.val() : undefined;
if(currentPassValue === undefined || currentPassValue.length === 0) {
return true;
}
return value.length >= 6;
};
$.fn.form.settings.rules.newPasswordDifferent = function(value) {
var currentPassValue = currentPassElement.length > 0 ? currentPassElement.val() : undefined;
if(currentPassValue === undefined || currentPassValue.length === 0) {
return true;
}
return value.toString() !== currentPassValue.toString();
};
$.fn.form.settings.rules.repeatPasswordMatch = function(value) {
var currentPassValue = currentPassElement.length > 0 ? currentPassElement.val() : undefined,
newPassValue = newPassElement.length > 0 ? newPassElement.val() : undefined;
if(currentPassValue === undefined || currentPassValue.length === 0) {
return true;
}
return value.toString() === newPassValue.toString();
};
Here is the semantic ui source file他们定义默认规则/提示/等。它是一个很好的参考,还展示了如何在提示符中显示值等。