【发布时间】:2017-04-29 02:26:03
【问题描述】:
以下是使用 jquery 的带有 script 标签的示例 HTML 代码:
<html>
<head>
<meta charset="UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var email_def= "Enter email address";
$('input[type="email"]').attr('value', email_def).focus(function() {
if ($(this).val() == email_def) {
$(this).attr('value', '');
}
}).blur(function() {
var val = $(this).val();
if (val == '') {
$(this).attr('value', email_def);
alert(val);
alert(email_def);
}
});
});
</script>
</head>
<body>
<form>
Email: <input type="email"> <input type="submit" id="submit">
</form>
</body>
</html>
重现步骤:
- 点击输入框。占位符值被清除。点击外部,占位符值现在被重置。
- 点击输入框。键入一些文本。删除文本。点击外面。占位符值不会重置。警报被触发。甚至 email_def 也显示在警报中。现在,属性值不会重置为 email_def 的值。
我的问题是为什么在 blur 函数中没有调用
$(this).attr('value', email_def);行。
编辑:感谢您的回答。 html5 的占位符和替换为 $(this).val(); 行似乎都可以正常工作
【问题讨论】:
-
为什么不直接使用输入占位符?
标签: javascript jquery html