javascript - 如何遍历我的表单字段并将它们添加到规则/消息对象?
问题描述
我正在尝试编写一个 for 循环,将元素添加到我的validate
方法中。
我想遍历每个以开头的输入元素user_input
并将其添加到我的rules
和messages
对象中。
它应该在我的对象中添加以下元素:
user_number_X {
checkLotteryNumber: true,
required: true
}
但它应该看起来像:
user_number_1: {
checkLotteryNumber: true,
required: true
},
user_number_2: {
checkLotteryNumber: true,
required: true
},
user_number_3: {
checkLotteryNumber: true,
required: true
},
这是我的 index.html
<form class="user-input">
<div class="input-wrapper">
<div class="number-wrapper">
<label for="user_number_1">1st number</label>
<input id="user_number_1" class="lottery-number" name="user_number_1" type="number" maxlength="2" required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user_number_2">2nd number</label>
<input id="user_number_2" class="lottery-number" name="user_number_2" type="number" maxlength="2" required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user_number_3">3rd number</label>
<input id="user_number_3" class="lottery-number" name="user_number_3" type="number" maxlength="2" required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user_number_4">4th number</label>
<input id="user_number_4" class="lottery-number" name="user_number_4" type="number" maxlength="2" required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user_number_5">5th number</label>
<input id="user_number_5" class="lottery-number" name="user_number_5" type="number" maxlength="2" required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user_number_6">6th number</label>
<input id="user_number_6" class="lottery-number" name="user_number_6" type="number" maxlength="2"required>
<span class="focus-border">
<i></i>
</span>
</div>
<div class="number-wrapper">
<label for="user-draw">Number of draws</label>
<input id="user-draw" class="draw-number" name="draw_number" type="number" required>
<span class="focus-border">
<i></i>
</span>
</div>
</div>
<div class="submit-button">
<button id="button-send_results" class="submit" type="submit">Let's win!</button>
</div>
</form>
我的.js文件:
$.validator.addMethod("checkLotteryNumber", function(value, element) {
return this.optional(element) || value > 0 && value <= 52;
}, 'Please, write numbers from 1 to 52 only');
$.validator.addMethod("checkDrawsNumber", function(value, element) {
return this.optional(element) || value < 100000;
}, 'You can play not more than 99.999 draws');
var rules = {
draw_number: {
checkDrawsNumber: true,
required: true
}
}
var numberCheck = function() {
$("input[id^='user_number']").each(function() {
rules[$(this.id)] = {
checkLotteryNumber: true,
required: true
};
});
}
console.log(rules);
numberCheck();
var messages = {
draw_number: {
checkDrawsNumber: 'You can play not more than 99.999 draws',
required: 'This field is required'
}
};
var drawsCheck = function() {
$("input[id^='user_number']").each(function() {
messages[$(this.id)] = {
checkLotteryNumber: 'Please, write numbers from 1 to 52 only',
required: 'This field is required'
};
});
}
console.log(messages);
drawsCheck()
$('form.user-input').validate({
rules: rules,
messages: messages,
.....
解决方案
推荐阅读
- scala - 列表的类型别名在擦除后导致相同的类型
- c# - SQL、UserControla 和 FlowLayoutPanel
- python - 在迁移学习 ResNet-50 期间如何解决这个问题?
- javascript - Vue 模板中的函数调用测试仅在使用括号调用函数时通过
- django - 如何生成多个多部分预签名的帖子 url 以在 boto3 中上传文件
- java - 为什么我不能使用 java FileWriter 将所有字符写入文件?
- java - 当我在 linux 上运行我的 jar 时出现警告
- reactjs - 如何使侧抽屉不收缩主体,而是作为覆盖在它上面
- mongodb - 使用 cmd 在 mongo 中导入和导出单个集合
- python-3.x - 为什么 Azure ML Studio(经典)需要额外的时间来执行 Python 脚本?