Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript if jQuery语句|空文本框_Javascript_Jquery_Html - Fatal编程技术网

Javascript if jQuery语句|空文本框

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

好吧,在过去的一个小时里,我一直在努力解决这个问题,这是一件如此简单的事情,我从来没有遇到过问题。因此输入“username\u input”有一个jQuery if状态

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)