我正在使用此功能
$(function () {
validateSignUp = function () {
console.log("Validation running");
em = $('#s_email').val();
a = validateEmail(em);
if (!a) {
$('#s_email').css({ "border": "3px solid red" });
$("#signup_comments").html("Please Enter a valid Email Address");
return false;
}
else
return true;
};
$("#mybutton").click(function () { console.log(validateSignUp) });
});
当我运行上面的函数时,控制台会打印完整的函数,因为它不是函数和变量。
为什么它不作为函数返回true或false? 为什么它表现得像变量?
答案 0 :(得分:1)
您必须call
function
,
console.log(validateSignUp());
在您的代码中,您只是将function reference
作为参数传递给console.log()
,因此它正在打印该函数引用的原始值(字符串),即object
。
答案 1 :(得分:0)
validateSignUp
是对函数的引用,因此,您需要调用此函数,然后记录结果,如下所示:
$("#mybutton").click(function () {
var fnResult = validateSignUp() ;
console.log(fnResult)
});
其次,当mybutton
按钮已添加到DOM时,您需要执行此代码,否则jQuery不会向其添加onClick事件,因为此时将使用此ID存在零元素。
你可以用两种方式做到这一点: