Javascript 使用jquery高级重置表单
当您尝试注册时,如果保留了空白/未填写的内容,则会出现错误。(来自PHP)。填充内容的输入字段保持记忆(Smarty:Javascript 使用jquery高级重置表单,javascript,jquery,forms,field,reset,Javascript,Jquery,Forms,Field,Reset,当您尝试注册时,如果保留了空白/未填写的内容,则会出现错误。(来自PHP)。填充内容的输入字段保持记忆(Smarty:{if-isset($Smarty.post.registratie.naam)}value=“{$Smarty.post.registratie.naam}”{else}value=“naam:{/if}) 问题:注册尝试失败后,我的输入字段的默认值(第一个是“Naam:”、“Voornaam:”、“Email:”)已更改为用户输入的值。(例如“弗雷德里克”) 例如: 使用Jq
{if-isset($Smarty.post.registratie.naam)}value=“{$Smarty.post.registratie.naam}”{else}value=“naam:{/if}
)
问题:注册尝试失败后,我的输入字段的默认值(第一个是“Naam:”、“Voornaam:”、“Email:”)已更改为用户输入的值。(例如“弗雷德里克”)
例如:
使用Jquery代码,我清除了有默认值的字段,尽管我不想清除用户填写的字段
Jquery代码:
function clearField(e)
{
if($(this).val() == this.defaultValue)
{
$(this).val('');
}
}
function resetField(e)
{
if($(this).val() == '')
{
this.value = this.defaultValue;
}
}
我认为隐藏字段标题是一个糟糕的界面设计想法。在某些时候,用户将无法知道某些字段的用途。考虑改变设计。 如果您仍想继续使用,只需在输入字段中添加默认值,例如:
<form id="my-form">
<input type="text" data-default-value="Enter your name:" name="name" value="{$form.name}">
</form>
$(document).ready(function() {
// Iterating through all form elements.
$.each('#my-form input[type="text"]', function() {
// Adding event listener and calling it afterwards to fill the inputs initially.
$(this).change(function() {
var $Input = $(this);
// If element value is not set (empty), then using default value.
if ($Input.val() == '') {
$Input.val($Input.attr('data-default-value'));
}
}).change();
});
});
$(文档).ready(函数(){
//遍历所有表单元素。
$.each(“#我的表单输入[type=“text”]”,函数(){
//添加事件监听器并随后调用它以最初填充输入。
$(this).change(function(){
var$Input=$(此);
//如果未设置元素值(空),则使用默认值。
如果($Input.val()=''){
$Input.val($Input.attr('data-default-value'));
}
}).change();
});
});
问题是,当加载新页面时,输入的值已成为默认值。相反,您可以使用占位符
属性(也有一些用于旧浏览器的插件):
你能详细说明一下当前代码的错误吗?除此之外,对于现代浏览器,您只需使用
。如果您想在前一个字段中重新键入某个内容(在首次提交后)(如果您写错了名称或其他内容),则该值将消失。然后,记住以后编辑它的值的全部意义就消失了。
<input placeholder="Naam:" ...>
/* add other prefixes if necessary */
input::-webkit-input-placeholder { color: black; }