Javascript if jQuery语句|空文本框
好吧,在过去的一个小时里,我一直在努力解决这个问题,这是一件如此简单的事情,我从来没有遇到过问题。因此输入“username\u input”有一个jQuery if状态Javascript if jQuery语句|空文本框,javascript,jquery,html,Javascript,Jquery,Html,好吧,在过去的一个小时里,我一直在努力解决这个问题,这是一件如此简单的事情,我从来没有遇到过问题。因此输入“username\u input”有一个jQuery if状态 if($('#username_input').val() == 0) { alert('Empty'); } else { alert('Not empty'); } function create_account() { var $username = $('#username_input').va
if($('#username_input').val() == 0) {
alert('Empty');
} else {
alert('Not empty');
}
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
之后,它移动到“password_input”if语句,这是相同的东西,但它会不断发出“empty”警报。为什么?
<!doctype html>
<html>
<head>
<title> Awflicks </title>
<meta name=viewport content="width=device-width, initial-scale=1">
<link type="text/css" rel="stylesheet" href="index.css">
</head>
<body>
<div id="body_div">
<form action="" method="post">
<div id="username_div"> Username: <input type="text" name="username" id="username_input"> </div>
<div id="password_div"> Password: <input type="password" name="password" id="password_input"> </div>
<div id="retype_password_div"> Retype password: <input type="password" name="retype_password" id="retype_password_input"> </div>
<div type="submit" id="submit_button"> Create Account </div>
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
function create_account() {
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
$('#submit_button').click(function() {
create_account();
document.forms[0].submit();
})
</script>
</body>
</html>
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
艾弗利克斯
用户名:
密码:
重新键入密码:
创建帐户
var$username=$('#username_input').val();
var$password1=$('#password_input').val();
var$password2=$('#重新键入密码输入').val();
函数create_account(){
如果($username==0){
警报(“空”);
}否则{
警报('非空')
}
}
$(“#提交按钮”)。单击(函数(){
创建_账户();
document.forms[0]。提交();
})
,因为具有值的变量在值更改时不会更新。它是读取时的值。您需要在需要时读取该值,或者在更改时设置变量
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
由于没有设置值,因此也不确定该值如何为零。你不是应该检查一下长度吗?您需要从验证函数返回一个布尔值,以便取消表单提交。您需要按照以下方式进行重构,以确保$username仅在提交输入后(例如,按下提交后)才会存储该值
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
您可以直接使用它,而无需定义变量
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
if(!$('#username_input').val()) // or if(!$('#password_input').val()) for password input
{
alert('empty');
} else {
alert('not empty')
}
在您做出其他答案所建议的更改后,您的表单总是会被提交,即使警告显示为“空”也会出现问题。事实上,当警报显示“Not empty”时,它将被提交两次。这是因为您的“提交”按钮具有
type=“submit”
,因此它会提交表单。您可以更改为type=“button”
,但我更喜欢将处理程序绑定到表单的提交事件,而不是按钮的单击事件
function create_account() {
var $username = $('#username_input').val();
var $password1 = $('#password_input').val();
var $password2 = $('#retype_password_input').val();
if($username == 0) {
alert('empty');
} else {
alert('not empty')
}
}
$('form').submit(function(event) {
event.preventDefault(); // Stop the form from getting submitted.
var username = $('#username_input').val();
var password1 = $('#password_input').val();
var password2 = $('#retype_password_input').val();
var isValid = true;
if (username == '') {
alert('Empty');
isValid = false;
}
if (isValid) {
this.submit(); // Now submit the form.
}
});
value==0
相当尴尬。你不是在检查它是否为零,而是检查它是否为空。由于JavaScript的真实性,您可以改为说if(value)