我需要知道为什么这个函数在引用变量时没有附加我的错误消息。我尝试返回一些像“false”这样的值,但仍然没有工作。请帮我在这里学到一些东西。
function checkName(el)
{
if (/^[a-zA-Z ]+$/.test(el.val()))
{
return null
}
return el
}
$(document).ready(function()
{
$('button[name=btn-submit]').on('click', function(e)
{
e.preventDefault();
var err = {
fn: checkName($('input[name=fn]')),
mn: checkName($('input[name=mn]')),
ln: checkName($('input[name=ln]'))
}
var isSubmit = function(){
for (var key in err) {
if (err.hasOwnProperty(key)) {
if(err[key] !== null)
{
var parent_div = err[key].parent().closest('div');
parent_div.append('<p id="p-error" class="error-msg">test</p>');
}
}
}
}
console.log(isSubmit);
//
答案 0 :(得分:1)
你永远不会调用处理err
对象的函数。您只是创建并将该功能分配给isSubmit
变量。
要调用它,您需要将()
添加到结尾,或者添加到函数表达式的末尾(如果您的目标是分配调用它的结果) isSubmit
),或isSubmit
中的console.log
之后(如果您的目标是在那里调用它)。
,例如
var isSubmit = function(){
for (var key in err) {
if (err.hasOwnProperty(key)) {
if(err[key] !== null)
{
var parent_div = err[key].parent().closest('div');
parent_div.append('<p id="p-error" class="error-msg">test</p>');
}
}
}
}(); // <== Here (could be pretty easy to miss seeing this, though)
或强>
console.log(isSubmit());
// Here ------------^^