我在使用Javascript获取输入值时遇到一些问题,第一次调用函数时我只得到用户名输入值。我正在做一个登录输入表单,在填写所有输入之前,我不想启用登录按钮。
所以会发生什么:我双击输入字段用户名,浏览器会自动填充用户名和密码输入,因为它在内存中有。但是函数check_login_inputs()
只获取第一次username
的值。如果我再做一次(双击并重新选择我想要使用的用户名) - >函数check_login_inputs()
获取值(username
和password
)。
我的代码:
var input = document.querySelector('#username');
input.addEventListener('input', function(){
check_login_inputs();
});
function check_login_inputs(){
var username = $('#username').val();
var password = $('#password').val();
alert(username+' '+password);
if (username.length < 1) {
username_ok = false;
$('#username').css('border', '3px red solid');
document.getElementById("login_button").disabled = true;
}else if (password.length < 1) {
password_ok = false;
$('#password').css('border', '3px red solid');
document.getElementById("login_button").disabled = true;
}else if (username.length > 1 && password.length > 1) {
username_ok = true;
password_ok = true;
$('#username').css('border', '3px green solid');
$('#password').css('border', '3px green solid');
if (username_ok == true && password_ok == true) {
document.getElementById("login_button").disabled = false;
}
}
}
解决方案是在底部
答案 0 :(得分:0)
好的,这是有效的:
function check_login_inputs(){
var username = $('#username').val();
var password = $('#password').val();
if(username.length < 1) {
username_ok = false;
$('#username').css('border', '3px red solid');
document.getElementById("login_button").disabled = true;
}
if(username.length > 1) {
username_ok = true;
$('#username').css('border', '3px green solid');
}
if(password.length < 1) {
password_ok = false;
$('#password').css('border', '3px red solid');
document.getElementById("login_button").disabled = true;
}
if(password.length > 1) {
password_ok = true;
$('#password').css('border', '3px green solid');
}
if(username_ok == true && password_ok == true) {
document.getElementById("login_button").disabled = false;
}
}