0

当您尝试注册并且将某些内容保留为空白/未填写时,您会收到错误消息。(来自 PHP)。已填写内容的输入字段会被记住(Smarty {if isset($smarty.post.registratie.naam)} value="{$smarty.post.registratie.naam}"{else}value="Naam:"{/if}:)

问题:在注册尝试失败后,我输入字段的默认值最初是“Naam:”,“Voornaam:”,“Email:”已更改为用户输入的值。(例如“Frederik ")

示例:http ://www.pixsters.be/index.php?page=registratie

使用我的 Jquery 代码,我清除了有默认值的字段,尽管我不想清除用户填写的字段。

jQuery代码:

function clearField(e)
{
    if($(this).val() == this.defaultValue)
    {
        $(this).val('');
    }

}

function resetField(e)
{
    if($(this).val() == '')
    {
        this.value = this.defaultValue;
    }
}
4

2 回答 2

0

我认为隐藏字段标题是一个糟糕的界面设计理念。在某些时候,用户将无法分辨某些字段的用途。考虑改变设计。

如果您仍然想坚持使用它,只需在输入字段中添加默认值,例如:

<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();

    });
});
于 2012-08-14T19:33:24.907 回答
0

问题是当新页面加载时,输入的值已经变成了defaultValues。相反,您可以使用该placeholder属性(还有一些适用于旧浏览器的插件):

<input placeholder="Naam:" ...>

这将在没有任何 JavaScript 的情况下键入内容时自动处理消失,并且它不会受到您的问题的影响。

不过,您可能希望保持黑色:

/* add other prefixes if necessary */
input::-webkit-input-placeholder { color: black; }
于 2012-08-14T19:36:51.107 回答