Итак, у меня есть поле ввода типа text, которое имеет значение по умолчанию (YYYY), и когда оно получает фокус, YYYY исчезает:
//inside document.ready
....
$("#year").focus(function(){
if(yearVal === "YYYY") {
$("#year").val("");
}
});
jQuery.validator.addMethod("numericCheck", function(value, element) {
return this.optional(element) || /^[0-9]{4}$/.test(value);
}, "Please enter a valid year");
$("#theForm").validate({
//set the rules for the field names
rules: {
year: {
required: true,
minlength: 4,
numericCheck: true
}
},
messages: {
year: {
required: "Please enter the year",
minlength : "Please enter a valid 4 digit year",
numericCheck : "Please enter a valid year"
}
},
errorPlacement: function(error, element) {
if(element.siblings("div.errorMessage").length)
{
element.siblings("div.errorMessage").remove();
}
element.parent().append('<div class="errorMessage"></div>');
element.siblings("div.errorMessage").html(error.html());
element.parents("tr.inputRow").removeClass("goodInputRow");
element.parents("tr.inputRow").addClass("errorInputRow");
},
onkeyup: false,
onfocusout: false,
onclick: false,
submitHandler: function(form) {
$(form).find(":submit").attr("disabled", true);
form.submit(); }
});
....
//inside theForm
<input type="text" id="year" name="year" style="width: 40px;" maxlength="4" value="YYYY" />
Текст пропал, и курсор должен мигать в поле.
Это прекрасно работает в FF, но в IE8 курсор не мигает (и исчез). Фокус остается на поле, и когда пользователь что-то печатает, курсор возвращается, но пока этого не происходит, курсор не появляется.
Я использую jquery 1.4.4 и IE8. Я был в состоянии воссоздать его изолированно (то есть больше ничего не работает на странице)
Я пробовал $ ("# year"). Focus () - без кубиков. Я могу сосредоточиться на каком-то другом поле, чтобы оно появилось там, но я действительно не хочу менять фокус, чтобы это исправить.
Вопрос: Есть ли способ заставить мигать курсор после очистки YYYY в IE8?
EDIT:
Спасибо за ответы - я изменил, чтобы включить больше соответствующих деталей.