Некоторые браузеры не запускают событие onChange
, пока фокус не потеряется.Возможно, вы захотите сделать что-то вроде этого:
jQuery(document).ready(function($){
$("#stuno").focus().keypress(function(e){
if(e.which === 13){ // if the enter key was pressed
e.preventDefault() // prevent the enter key from submitting the form
if ( $.trim( $( '#stuno' ).val() ) == '' ) {
$('#stuname').val( '' );
$( '#stuerr' ).text( 'Student Account Not Valid!' ) ;
}
else{
$.ajaxSetup ({cache: false});
$.getJSON("student.php",{'stuno' : $("#stuno").val()},
function(data){
if(data[0].status){
var labelvalue = data[0].label.split('-');
$("#stuname").val(labelvalue[1]);
}else{
$('#stuname').val( '' );
$( '#stuerr' ).text(data[0].label);
}
if( $("#stuname").val() ){
$( '#stuerr' ).text( '' ) ;
}
});
}
}
});
});
Я сделал несколько вещей с вашим кодом.Я изменил все .attr('value',...)
звонки на .val()
для согласованности.И я использовал переменную jQuery
снаружи вашей функции ready и убедился, что переменная $
фактически является jQuery внутри вашей функции ready.И я изменил ваш обработчик change
, чтобы он работал на keypress
, только если нажата была клавиша Enter .