2012-01-13 175 views
5

我正在使用此代碼來檢查輸入框是否爲空,它工作正常,但它只檢查檢查一個鍵是否加載頁面時不按。JQuery檢查輸入是否爲空而不是檢查onload?

這是做它應該的,但我也希望它檢查頁面加載時的狀態。

下面是當前的代碼:

$('#myID').on('keyup keydown keypress change paste', function() { 
    if ($(this).val() == '') { 
    $('#status').removeClass('required_ok').addClass('ok'); 
    } else { 
    $('#status').addClass('required_ok').removeClass('not_ok'); 
    } 
}); 

回答

6

嘗試以下操作:

$(function() { 
    var element = $('#myID'); 
    var toggleClasses = function() { 
    if (element.val() == '') { 
     $('#status').removeClass('required_ok').addClass('ok'); 
    } else { 
     $('#status').addClass('required_ok').removeClass('not_ok'); 
    } 
    }; 
    element.on('keyup keydown keypress change paste', function() { 
    toggleClasses(); // Still toggles the classes on any of the above events 
    }); 
    toggleClasses(); // and also on document ready 
}); 
+0

這是一個更好的方法來做到這一點,然後我回答 – atmd 2012-01-13 10:21:42

2

那麼那麼你爲什麼不只是檢查場在頁面加載後?

$(document).ready(function(){ 
    if ($('#myID').val() == '') { 
    $('#status').removeClass('required_ok').addClass('ok'); 
    } else { 
    $('#status').addClass('required_ok').removeClass('not_ok'); 
    } 
}); 
3

嘗試在一個文檔準備檢查值:

$(function() { 
    if ($('#myID').val() == '') { 
     $('#status').removeClass('required_ok').addClass('ok'); 
    } else { 
     $('#status').addClass('required_ok').removeClass('not_ok'); 
    } 
}); 

編輯:只是作爲一個更新這個答案,一個更好的辦法可能是使用撥動類,在文檔準備再觸發設置該事件在頁面加載時運行。

function check() { 
    var $status = $('#status'); 

    if ($(this).val()) { 
     $status.toggleClass('required_ok').toggleClass('ok'); 
    } else { 
     $status.toggleClass('required_ok').toggleClass('not_ok'); 
    } 
} 


$(function() { 
    $('#myID').on('keyup keydown keypress change paste', check); 
    $('#myID').trigger('change'); 
}); 
3

做最簡單的方法是觸發任何KEYUP,KEYDOWN等事件在頁面加載的。然後,它會自動調用特定的處理程序

$(document).ready(function(){ 
    $("#myID").trigger('keyup'); 
}); 
2
$(document).ready(function(){ 
var checkVal = $("myID").val(); 
if(checkVal==''){ 
$('#status').removeClass('required_ok').addClass('ok'); 
} 
else{ 
$('#status').addClass('required_ok').removeClass('not_ok'); 
} 
});