我正在尝试创建用于多种语言的表单验证错误消息。
不幸的是,“目标”参数到我的函数的传输不起作用。也许目标被解释为字符串?!
function formMessages(field, target) {
var messages = {
'de' : {
'valueMissing': 'Bitte füllen Sie dieses Feld aus.',
'typeMismatch': {
'email': 'Bitte geben Sie eine E-Mail ein.',
'url': 'Bitte geben Sie eine URL ein.'
}
}
};
// Don't work!
// return messages.de.target;
// This works! But it is not dynamic!
// return messages.de.typeMismatch.email;
}
if (validity.typeMismatch) {
// Email
if (field.type === 'email') return formMessages(field, 'typeMismatch.email');
}
最佳答案
使用eval方法
return eval('messages.de.'+target);