如何在jquery中最小化以下绑定:
var profileIdDefault = "Profile ID";
var organisationIdDefault = "Competitor ID";
var FromDateDefault = "From Date";
var ToDateDefault = "To Date";
$("#startDate").focus(function () {
if ($(this).val() === FromDateDefault) {
$(this).attr("value", "");
}
});
$("#startDate").blur(function () {
if ($(this).val() === '') {
$(this).val(FromDateDefault);
}
});
$("#endDate").focus(function () {
if ($(this).val() === ToDateDefault) {
$(this).attr("value", "");
}
});
$("#endDate").blur(function () {
if ($(this).val() === '') {
$(this).val(ToDateDefault);
}
});
$("#profileID").focus(function () {
if ($(this).val() === profileIdDefault) {
$(this).attr("value", "");
}
});
$("#profileID").blur(function () {
if ($(this).val() === '') {
$(this).val(profileIdDefault);
}
});
$("#organisationID").focus(function () {
if ($(this).val() === organisationIdDefault) {
$(this).attr("value", "");
}
});
$("#organisationID").blur(function () {
if ($(this).val() === '') {
$(this).val(organisationIdDefault);
}
});
答案 0 :(得分:3)
保持干燥。例如:
function setup(id, toCompare) {
$(id).focus(function () {
if ($(this).val() === toCompare) {
$(this).attr("value", "");
}
}).blur(function () {
if ($(this).val() === '') {
$(this).val(toCompare);
}
});
}
setup("#startDate", FromDateDefault);
setup("#endDate", ToDateDefault);
setup("#profileID", profileIdDefault);
setup("#organisationID", organisationIdDefault);
答案 1 :(得分:2)
您也可以使用placeholder
简单地完成此操作<input id="startdate" placeholder="From Date" /><br />
<input id="endDate" placeholder="To Date" /><br />
答案 2 :(得分:0)
您可以这样做: -
function toggleValue(valToCompare) {
if ($(this).val() === valToCompare) {
$(this).attr("value", "");
} else if ($(this).val() === '') {
$(this).val(valToCompare);
}
}
$("#startDate").focus(function() {
this.toggleValue(FromDateDefault);
}).blur(function() {
this.toggleValue(FromDateDefault);
});
您可以对其余元素执行相同的操作。
答案 3 :(得分:0)
您可以使用data属性在元素中存储一些数据。然后,您可以测试与元素关联的值。例如......
<input id="startdate" class="focus-value" data-empty="From Date" />
<input id="enddate" class="focus-value" data-empty="To Date" />
在jquery中......
$(".focus-value").focus(function() {
if $(this).val() === $(this).data('empty') {
$(this).attr("value", "");
}
});
允许您组合所有焦点和模糊处理程序。