1

jqueryプレースホルダーを同等にするときに、フォーム送信の問題が発生しました。現在、値はフォーカス/フォーカスアウトで変更されますが、私が遭遇する問題は、フィールドを空白のままにできないことですが、フォームの検証ではデフォルトが値として読み取られるため、許可されます。submit()とonclick()のチェックをしてみました。送信ボタンをクリックして、フォーム自体を送信します。どちらも機能しませんでした。値がデフォルト値であるかどうかを送信するタイミングを確認する必要があります。もしそうなら、うまくいけば、提出前に値が空白になるようにしてください。そうすれば、エラーシステムに組み込まれたdrupalsは、自分で構築するのではなく、トリガーされます。

プレースホルダーテキストの現在のコード。

if ($.browser.msie) {
    // for name field
    $('#edit-submitted-name').focus(function(){
        if ( $('#edit-submitted-name').val() == 'Name...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-name').focusout(function(){
        if ( !$('#edit-submitted-name').val() ) {
            $(this).val('Name...');
            $(this).css('color', '#abadb3');
        }
    });
    //for email address field
    $('#edit-submitted-email-address').focus(function(){
        if ( $('#edit-submitted-email-address').val() == 'Email Address...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-email-address').focusout(function(){
        if ( !$('#edit-submitted-email-address').val() ) {
            $(this).val('Email Address...');
            $(this).css('color', '#abadb3');
        }
    });
    // for email field
    $('#edit-submitted-email').focus(function(){
        if ( $('#edit-submitted-email').val() == 'Email...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-email').focusout(function(){
        if ( !$('#edit-submitted-email').val() ) {
            $(this).val('Email...');
            $(this).css('color', '#abadb3');
        }
    });

    $('#edit-submitted-name').val('Name...');
    $('#edit-submitted-name').css('color', '#abadb3');
    $('#edit-submitted-email-address').val('Email Address...');
    $('#edit-submitted-email-address').css('color', '#abadb3');
    $('#edit-submitted-email').val('Email...');
    $('#edit-submitted-email').css('color', '#abadb3');

}
4

4 に答える 4

0

jqueryプレースホルダープラグインを使用できます: jquery.placeholder.js

于 2012-12-27T05:55:42.227 に答える
0

Jqueryウォーターマークはプレースホルダーの良い例です:-

http://code.google.com/p/jquery-watermark/

于 2012-12-27T06:00:13.863 に答える
0

このようなプラグインは必要ないと思います。それはおそらくやり過ぎのようです。

あなたはあなたが次のようなことをしたと言っていますか....

$('#formId').submit(function () {
    //check all inputs in the form, if their values match the placeholders then remove the values

    //returning true or false here will either continue form submission or stop it (i think)
});

要素を調べると、タグにイベントリスナーがありますか?Google Chromeのインスペクターには、CSSの下に、イベントリスナーを表示する要素に関するセクションがあります。これは、何かが追加されているかどうかを検証するのに役立ちます onSubmit

于 2012-12-27T14:12:26.657 に答える
0

これは私にとって素晴らしい働きをします。

$('form.webform-client-form input#edit-submit').click(function(){
        if ($('#edit-submitted-name').val() == 'Name...') {
            $('#edit-submitted-name').val('');
            $('form.webform-client-form').submit();
        }
        if ($('#edit-submitted-email-address').val() == 'Email Address...') {
            $('#edit-submitted-email-address').val('');
            $('form.webform-client-form').submit();
        }
        if ($('#edit-submitted-email').val() == 'Email...') {
            $('#edit-submitted-email').val('');
            $('form.webform-client-form').submit();
        }
    });
于 2012-12-28T03:50:55.623 に答える