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 № 1jQuery("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"
});
}
});
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" });
}
});