jquery 将不可写值保存到变量中?
嘿伙计们, 我想知道如何以最好的方式解决这个问题: 我有一个将当前日期保存为值的表单。
<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);
}
});
解决这个问题的最佳方法是什么?我该如何解决这个问题?
hey guys,
i wonder how I could solve this in the best way:
I have a form which holds the current date as value.
<form class="form" method="post" action="">
<input type="text" value="<?php echo date("m.d.y"); ?>"/>
</form>
I wonder how I could save this value with jquery and return it to the field once it's blurred.
Imagine the following case.
1.) the field holds the current date. 2.) the user deletes the input value and enters a new value. 3.) the user decides to delete this value again and clicks outside the field. then it's blurred and it should hold the original value (the date).
var cv = '';
$('input').focus(function() {
cv = $(this).val();
});
$('input').blur(function() {
if ( $(this).val() == '' ) {
$(this).val(cv);
}
});
What's the best way to solve this? How could I solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您描述的模糊/焦点行为听起来像 HTML 中的
placeholder
属性。示例:因此,在您的情况下,您所要做的就是使用
placeholder
而不是value
:您也可以同时使用它们:
这样,当页面已加载,但当字段被清除然后模糊时,当前日期将重新显示为占位符文本。
(请注意,您确实应该使用
进行日期输入,但这与您的问题无关。)
@placeholder
适用于最新的稳定版Chrome、Safari、Opera 和 Firefox 4。对于本身不支持此属性的浏览器,您可以使用 JavaScript。
如果您使用 jQuery,则可以考虑使用 我的 jQuery 占位符插件 ,这是我见过的最强大的解决方案。这是一个演示页面:http://mathiasbynens.be/demo/placeholder
The blur/focus behavior you’re describing sounds like the
placeholder
attribute in HTML. Example:So in your case, all you have to do is use
placeholder
instead ofvalue
:You can also use them both:
This way, the current date will be entered when the page is loaded, but when the field is cleared and then blurred, the current date will re-appear as placeholder text.
(Note that you should really use
<input type=date>
for date inputs, but this has nothing to do with your question.)@placeholder
works in the latest stable Chrome, Safari, Opera, and Firefox 4.For browsers who don’t support this attribute natively, you could use JavaScript.
If you’re using jQuery, you could consider using my placeholder plugin for jQuery, which is the most robust solution I’ve seen. Here’s a demo page: http://mathiasbynens.be/demo/placeholder
我会将原始值保存在
focus
上,但随后会加载页面 (onready
):I would save the original value on
focus
, but then the page is loaded (onready
):