我在我的html模板中有這段代碼。它會檢查用戶輸入的學校名稱,以及學校與我的數據庫中關聯的唯一ID。如何在代碼執行前使JavaScript/Jquery/AJAX等待
$("#id_school").change(function() {
var school = $(this).val();
var identification_code = document.getElementById('id_identification_code')
if (identification_code != '' and school != '') {
$.ajax({
url: '/checks/validate_school/',
data: {
'school': school,
},
dataType: 'json',
success: function(data) {
console.log('Checked School')
if (data.code != identification_code) {
console.log(data.code);
document.getElementById('id_school').style.borderColor = 'red';
document.getElementById('id_identification_code').style.borderColor = 'red';
} else {
document.getElementById('id_school').style.borderColor = 'green';
document.getElementById('id_identification_code').style.borderColor = 'green';
}
}
});
}
});
正如你可以看到,如果在數據庫中的代碼和用戶輸入不匹配的代碼,我想去紅色的框。當他們這樣做時,我希望它變綠。
問題是,只要我輸入學校名稱,在輸入代碼之前,兩個框都會變紅。我試圖修復這與if(identification_code != '' and school != '')
但這沒有奏效。
感謝您的幫助!
你錯過了'VAL()''中選擇id_identification_code'' – dloeda
如果{''首先是identification_code'一個DOM元素對象,所以永遠不會等於''''。推測你的意思是'identification_code.value!='''。在JS中,'和'也是無效的語法。你需要'&&'而不是 –
@RoryMcCrossan我已經做了更改,但現在沒有任何反應。輪廓不會改變顏色,也不會在控制檯中記錄任何內容。 – wtreston