我面临着 javascript 函数的意外行为。我将字段的 ID 作为字符串传递给函数,但它以 bool 值形式接收。请帮忙,代码如下。
功能
function page_smooth_scroll(target_id) {
if (target_id =! null) {
$j('html, body').animate({
scrollTop: $j("#" + target_id).offset().top - 120
}, 500);
}
}
调用函数
function validatePassword(){
var validPassword = false;
var pwd = $j("#Password").val().trim();
var cfmPwd = $j("#ConfirmPassword").val().trim();
if((pwd == "") || (cfmPwd == "")){
$j("#ConfirmPassword").addClass("invalidPwd").nextAll("ul.err-msg").html("<li>Please enter Password</li>");
//here id is passed as string
page_smooth_scroll("ConfirmPassword");
validPassword = false;
}
else{
$j("#ConfirmPassword").removeClass("invalidPwd").nextAll("ul.err-msg").empty();
if(pwd != cfmPwd){
$j("#ConfirmPassword").addClass("invalidPwd").nextAll("ul.err-msg").html("<li>Password does not match</li>");
//here id is passed as string
page_smooth_scroll("ConfirmPassword");
validPassword = false;
}
else{
$j("#ConfirmPassword").removeClass("invalidPwd").nextAll("ul.err-msg").empty();
validPassword = true;
}
}
return validPassword;
}
调试时如下图 passing string
最佳答案
if (target_id =! null) {
我认为你的意思是a != b
因为a=!b
的意思是a = !b
,这意味着“分配相反的 bool 值”,这确实会将任何东西变成 bool 值。
下次如果您认为函数“接收 bool 值”,请确保在运行任何语句之前调试该值。我确信在进入函数时它仍然是一个字符串。
关于JavaScript 函数发送字符串但接收 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40232644/