2
     $('input[class*="defaulttext"]').each(function () {

                    this.value = $(this).attr('title');
                    $(this).addClass('defaultclass');

                    $(this).focus(function () {
                        if (this.value == $(this).attr('title')) {
                            this.value = '';
                            $(this).removeClass('defaultclass');
                        }
                    });

                    $(this).blur(function () {
                    if (this.value == '') {
                        this.value = $(this).attr('title');
                        $(this).addClass('defaultclass');
                    }
                });


                });

これは基本的に、テキストボックスの背景テキスト効果を追加します (タイトルを使用します)。選択すると、テキストは消えます。

現在、オプションのフィールドに問題があります。ユーザーがこれらのフィールドを編集しない場合、デフォルトの背景テキストがフォームとともに送信されます。したがって、フォームが送信されたら、未編集のフィールドの値をリセットする必要があります。これを行う方法はありますか?

おそらくフォームの送信時に、タイトルが値かどうかを確認してください。はいの場合は、'' に設定します。

4

4 に答える 4

1

HTML5プレースホルダーjQueryプラグインを使用しましたが、この場合はうまく機能しました。

于 2012-05-03T19:33:30.937 に答える
1

あなたが持っているコードに基づいて、次のことができます:

$("#yourForm").submit(function () {
     $('input[class*="defaulttext"]').val("");
};
于 2012-05-03T19:35:31.753 に答える
0

これを実行して、title=valueの値を確認できます。または、 jQuery.data()を使用して編集したフィールドにマークを付けることもできます

于 2012-05-03T19:33:33.207 に答える
0
$("#yourForm").submit(function () {
    $('input.defaulttext').each(function() {
        if($(this).val() === $(this).attr('title')) { $(this).val(''); }
    });
};
于 2012-05-03T19:44:17.900 に答える