https://jsfiddle.net/y5Lk5k5t/
function check() {
$('input').each(function(i, val) {
$(this).val() ? "" : console.log($(this).attr('placeholder') + ' cannot be empty.');
});
}
$('button').click(function() {
check();
})
我想创建一个函数调用checkIfEmpty,如何将它与每个函数分开?我这样做了,但它没有用。
$('input').each(function(){
if(!$(this).val()){
require($(this));
}
});
function require(that){
console('Please fill in ' + $(that).data('validate-msg') + '.');
}
答案 0 :(得分:0)
如果您将$(this)
传递给require
,则无需再次将其转换为jQuery对象,因此这应该有效:
function require(that){
console('Please fill in ' + that.data('validate-msg') + '.');
}
编辑:这更快,更易读:
$('input').each(function() {
var currentInput = $(this);
if(!currentInput.val()) {
var message = currentInput.data('validate-msg');
require(message);
}
});
function require (message) {
console('Please fill in ' + message + '.');
}
答案 1 :(得分:0)
此版本有效:
function check() {
$('input').each(function () {
if (!($(this).val())) {
require($(this));
}
});
function require($that) {
console.log('Please fill in ' + $that.data('validate-msg') + '.');
}
}
$('button').click(function () {
check();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="name" data-validate-msg="one">
<input type="text" placeholder="email" data-validate-msg="two">
<button>submit</button>
更新的jsfilddle:https://jsfiddle.net/1kpq8asq/1/
答案 2 :(得分:0)
作为一个小注释,请避免在“通常”代码中使用“require”这样的名称。例如,如果在NodeJS环境中重用代码,它将被破坏。