[英]if jQuery statement | empty text boxes
好吧,在過去的一個小時里,我一直在努力地弄清楚這一點,它是如此簡單,我從未遇到過任何問題。 因此,輸入“ username_input”具有jQuery if狀態,即
if($('#username_input').val() == 0) {
alert('Empty');
} else {
alert('Not empty');
}
之后,它移到“ password_input” if語句上,這是一回事,但它會不斷提醒“空”。 為什么?
<!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>
因為帶有值的變量在值更改時不會更新。 讀取時的值。 您需要在需要時讀取該值,或將變量設置為onchange。
另外,由於未設置任何值,因此不確定該值將如何為零。 你不應該檢查長度嗎? 您將要從驗證函數返回布爾值,以便您知道要取消表單提交。
您可以直接使用它而無需定義變量
if(!$('#username_input').val()) // or if(!$('#password_input').val()) for password input
{
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')
}
}
在做出其他答案所建議的更改之后,即使警報顯示“ Empty”,也總是存在提交表單的問題。 實際上,當警報顯示“不為空”時,它將兩次提交。 那是因為您的“ submit_button”具有type="submit"
所以它提交了表單。 您可以更改為type="button"
,但是我的偏好是將處理程序綁定到表單的commit-event而不是button的click-event。
$('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.
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.