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=registrie

私のJqueryコードでは、デフォルト値があるフィールドをクリアしますが、ユーザーが入力したフィールドをクリアしたくありません。

Jクエリコード:

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

}

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

2 に答える 2

0

問題は、新しいページが読み込まれたときに、入力された値がdefaultValues になっていることです。代わりに、属性を使用できplaceholderます (古いブラウザー用のプラグインもいくつかあります)。

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

これにより、JavaScript を使用せずに何かを入力すると自動的に消えてしまい、問題は発生しません。

ただし、おそらく黒のままにしたいでしょう。

/* add other prefixes if necessary */
input::-webkit-input-placeholder { color: black; }
于 2012-08-14T19:36:51.107 に答える
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 に答える