在新用戶註冊表單上,我有一個真正簡單的函數只是爲了檢查數據庫中是否存在用戶名。不幸的是,該聲明的else
部分不起作用。 PHP文件正常工作,並按預期返回true
或false
。下面是jQuery的:jquery if/else語句與.get不工作
$('#username').keyup(function() {
var inp = $('#username').val();
$.get('register-check-username.php', { username: inp }, function(data) {
if(data!="false") {
$('#namecheck').html('✓');
} else {
$('#namecheck').html('This username is already taken');
}
});
});
如果現在還不清楚,username
是文本輸入的ID。當它改變時,php正在檢查用戶名可用性。然後,一個ID爲「namecheck」的<span>
標籤將更改爲告訴用戶情況如何。現在,我可以將if(data)
更改爲if(!data)
,並且其行爲將與該更改預期一致。如上所述,當它應該時,我可以得到$('#namecheck').html('✓')
,但從來沒有$('#namecheck').html('This username is already taken')
的第二部分。
爲什麼我的else
行永遠不會被調用?我浪費了太多時間試圖自己解決這個問題,所以現在我要求大家幫忙弄清楚發生了什麼問題。
編輯: 隨着console.log(data)
在那裏,控制檯返回false
時,它是假的,但沒有記錄時,它是真的。
更新if(data)
至if(data!="false")
。問題依然存在。
UPDATE 問題不是我想的那樣。它看起來像腳本是發射,因爲它應該,除了它只有.keyup
如果輸入值是4個字符或更少,並且我一直在測試它的用戶名是6個字母。返回的前4個字符的數據保持不變。
所以現在看起來問題實際上是它不會運行.get()
,除非值是4個字符或更少。我正在尋找什麼可能導致這在PHP中。
'console.log(data)'顯示什麼? – BlitZ
當它是假的時它顯示'假',當它是真的時顯示沒有。我把它放在'var inp'行下面 – Yhilan
你可以改變你的php以迴應'true'作爲其他的'false'已經工作嗎? – Sergio