/ / Sprawdzanie poprawności Jquery nie uruchamia się w polu dnia? - javascript, jquery

Sprawdzanie poprawności jquery nie uruchamia się w polu dnia? - javascript, jquery

Mam ten skrypt i jego wyzwalanie, gdy klikam po raz pierwszy w polu tekstowym:

var day = parseInt($("#day_birthdate").val(), 10);
jQuery("input#day_birthdate").bind("input propertychange", function () {
if (day >= 1 || day <=31) {
jQuery(this).css({ "background": "green" });


} else {
jQuery(this).css({ "background": "red" });

}
});

Mam to pole tekstowe:

@Html.TextBoxFor(m => m.Register.Day, new { id = "day_birthdate", @class = "form-control", mask = "99", @placeholder = "dd" })

Kiedy klikam na pole tekstowe jego wyzwalanie, ale dlaPierwszą wartością jest NaN i jej czerwony, ale kiedy wprowadzę pewną liczbę, jej wyzwalanie już się nie powiedzie ... więc muszę to jakoś zmienić, więc gdy użytkownik wpisze cyfry od 1 do 31, aby uzyskać zielone pole tekstowe.

Odpowiedzi:

0 dla odpowiedzi № 1
jQuery("input#day_birthdate").bind("input propertychange", function () {
var day = parseInt($("#day_birthdate").val(), 10); //Getting the value after change

if (day >= 1 && day <= 31) { // Changed || to && because both must be true
jQuery(this).css({
"background": "green"
});
} else {
jQuery(this).css({
"background": "red"
});
}
});

Skrzypce


0 dla odpowiedzi nr 2

Musisz się ruszać day przypisanie do treści zdarzenia, ponieważ ten kod:

var day = parseInt($("#day_birthdate").val(), 10);
jQuery("input#day_birthdate").bind("input propertychange", function () {
if (day >= 1 || day <=31) {

uzyskuje wartość przy ładowaniu strony i tylko porównuje wartości po wpisaniu do pola. Ruszaj się var day = ... do treści wydarzenia:

jQuery("#day_birthdate").bind("input propertychange", function () {
var day = parseInt($("#day_birthdate").val(), 10);

if (day >= 1 || day <=31) {

0 dla odpowiedzi № 3

powinieneś otrzymać wartość wejściową w zdarzeniu.

var day = "";
jQuery("input#day_birthdate").bind("input propertychange", function () {
day = parseInt($("#day_birthdate").val(), 10);
if (day >= 1 || day <=31) {
jQuery(this).css({ "background": "green" });
} else {
jQuery(this).css({ "background": "red" });

}
});