Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery高级重置表单_Javascript_Jquery_Forms_Field_Reset - Fatal编程技术网

Javascript 使用jquery高级重置表单

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

当您尝试注册时,如果保留了空白/未填写的内容,则会出现错误。(来自PHP)。填充内容的输入字段保持记忆(Smarty:
{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; }