【发布时间】:2011-04-20 21:19:58
【问题描述】:
所以我有一个文本类型的输入字段,它有一个默认值 (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() -- 没有骰子。我可以专注于其他领域并让它出现在那里,但我真的不想为了解决这个问题而转移焦点。
问题:有没有办法让IE8中的YYYY清除后光标闪烁?
编辑: 感谢您的回复 - 我已经修改以包含更多相关细节。
【问题讨论】:
-
旁注,您的条件是多余的 -
yearVal不可能是"YYYY"和""所以在检查之前没有必要确保它不是""它是"YYYY"。
标签: jquery html internet-explorer-8