<form class="form" method="post" action="">
<input type="text" value="<?php echo date("m.d.y"); ?>"/>
</form>
我想知道如何用jquery保存这个值,并在模糊后将其返回到字段中。 想象一下以下情况。 1.)该字段保存当前日期。 2.)用户删除输入值并输入新值。 3.)用户决定再次删除该值并在字段外单击。然后它变得模糊,它应该保持原始值(日期)。
var cv = '';
$('input').focus(function() {
cv = $(this).val();
});
$('input').blur(function() {
if ( $(this).val() == '' ) {
$(this).val(cv);
}
});
解决这个问题的最佳方法是什么?我怎么能解决这个问题?
答案 0 :(得分:0)
我会将原始值保存在focus
上,但页面已加载(onready
):
var cv;
$(function() {
cv = $("input").val();
});
答案 1 :(得分:0)
您描述的模糊/焦点行为听起来像HTML中的placeholder
属性。例如:
<input type="text" placeholder="e.g. John Doe">
因此,在您的情况下,您只需使用placeholder
代替value
:
<input type="text" placeholder="<?php echo date("m.d.y"); ?>">
您也可以同时使用它们:
<input type="text" value="<?php echo date("m.d.y"); ?>" placeholder="<?php echo date("m.d.y"); ?>">
这样,当页面加载时会输入当前日期,但是当字段被清除然后模糊时,当前日期将重新显示为占位符文本。
(请注意,您应该使用<input type=date>
作为日期输入,但这与您的问题无关。)
@placeholder
适用于最新的Chrome,Safari,Opera和Firefox 4。
对于本机不支持此属性的浏览器,您可以使用JavaScript。
如果你正在使用jQuery,你可以考虑使用my placeholder plugin for jQuery,这是我见过的最强大的解决方案。这是一个演示页面:http://mathiasbynens.be/demo/placeholder