【发布时间】:2017-06-21 21:59:32
【问题描述】:
我遇到了一个奇怪的问题。我对 JavaScript jQuery 比较陌生。
当我刷新页面时,地址输入字段不会被清除,而邮政编码和电子邮件字段会被清除。
我试过$('#input_address').get(0).value='';
这清除了该领域。但我不希望当用户从第 2 页返回到第 1 页时发生这种情况。只有在刷新时才能清除这些字段。
电子邮件和邮政编码在两种情况下都能完美运行:刷新页面和 page2 到 page1 导航。
$(document).ready(function() {
console.log("doc ready function");
// $('#input_address').get(0).value='';
// togglePlaceholder($('#input_email').get(0));
// togglePlaceholder($('#input_zip').get(0));
togglePlaceholder($('#input_address').get(0));
$('input, select, textarea').each(
function() {
var val = $(this).val().trim();
if (val.length) {
$(this).addClass('sample');
}
});
$('input, select, textarea').blur(function() {
if ($(this).val())
$(this).addClass('sample');
else
$(this).removeClass('sample');
});
$('input, select, textarea').focus(function() {
console.log("focused");
if ($(this).val() == '') {
$(this).removeClass('invalid');
$(this).addClass('sample');
}
});
})
function togglePlaceholder(inputElement) {
var inputAttr = inputElement.getAttribute("placeholder");
inputElement.placeholder = "";
inputElement.onblur = function() {
this.placeholder = "";
}
inputElement.onfocus = function() {
this.placeholder = inputAttr;
}
}
.sample ~ label {
font-size: 1em;
top: -10px;
left: 0;
font-size: 1em;
color: #F47B20;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-field col s6 col-xs-12">
<input type="text" onblur="togglePlaceholder(this);" onfocus="togglePlaceholder(this);" placeholder="123 Example Street" id="input_address" />
<label for="input_address">Street Address</label>
</div>
【问题讨论】:
-
我们也来看看 HTML。
-
请点击
<>并创建一个minimal reproducible example 但是你为什么要经历这么多麻烦?默认占位符功能有什么问题? -
更新了地址 HTML。 @mplungjan 默认占位符弄乱了标签。两者同时出现
-
我创建了你应该创建的 sn-p。请解释我正在查看的代码有什么问题?是否缺少一些 CSS 可以帮助我们了解问题所在?
-
您无法轻易检测到重新加载。我会将字段包装在一个表单中,并在我想清除它时执行
$("form")[0].reset()
标签: javascript jquery html css material-design