问题描述
我有一个基本的表单检查数据方法:
我是否必须将这个方法放在视图、模型或控制器中。
checkFormData() {
const nameField = this.form.elements.name;
const firstNameField = this.form.elements.firstName;
const mailField = this.form.elements.mail;
const messageField = this.form.elements.message;
const mailformat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
const dataFields = {};
if (nameField.value.length < 2 || nameField.value.length > 25) {
dataFields.name = false;
} else {
dataFields.name = true;
}
if (firstNameField.value.length < 2 || firstNameField.value.length > 25) {
dataFields.firstName = false;
} else {
dataFields.firstName = true;
}
if (!mailField.value.match(mailformat)) {
dataFields.mail = false;
} else {
dataFields.mail = true;
}
if (messageField.value.length < 2 || messageField.value.length > 500) {
dataFields.message = false;
} else {
dataFields.message = true;
}
return dataFields;
}
- 目前,此方法在一个类中(导出默认的 ContactForm)。
- 我使用 Vanilla javascript(没有框架或库)。
- 所以为了分离我的文件,我使用了导出和导入模块。
- 暂时没有后端逻辑(没有数据库)。当用户填写表单时,他点击提交按钮,这个方法就是调用。
解决方法
您可以将其保留在视图部分,但以防万一,如果有人尝试使用邮递员或类似方法访问 url (api),您也必须在控制器中编写验证逻辑,以确保.