【发布时间】:2018-01-15 12:56:57
【问题描述】:
我正在编写一个简单的客户端表单验证代码。我正在尝试使用验证过程中使用的属性和值创建对象(对于每个单独的输入),然后将它们附加到输入节点。
我正在尝试找到一种方法将这些对象自动与相应的输入配对。在下面的代码中,我找到了一种方法来做到这一点,但代价是使用 eval() 函数,我宁愿避免。在JS中还有其他方法可以做到这一点吗?
<label class="c-contact-form__label" for="your_name">Your Name *</label>
<input class="" type="text" name="your_name" maxlength="50" size="30">
var your_name = {
regex: /^([a-z\u00C0-\u02AB,.'´`]{1,}\.?\s?)([a-z\u00C0-\u02AB,.'´`]?\.?\s?)+$/i,
required: true,
invalid: "Your name seems a little bit weird…",
empty: "Please, fill in your name."
};
// From within a function of eventListener:
var Merged = Object.assign(this, eval(this.name)); // Use of eval()
console.log(Merged.invalid); // "Your name seems a little bit weird…",
我非常努力地寻找解决方案,并且我已经阅读了可能的 context[varName] 解决方案,但它似乎不起作用(或者我不明白)。
【问题讨论】:
标签: javascript validation variables eval dry