9

選択したフィールドに透かしを入れる方法を探しています。

それは機能していません - >

[select* c_type class:ic watermark "choose type" "a" "b" "c"]

検証に失敗する無効な値を入力するには、入力する必要がありましたinclude_blank

[select* c_type class:ic include_blank "a" "b" "c"]

しかし問題は、私が---透かしとして持っていることです。それは私が変更したいものです..

4

5 に答える 5

23

Contact Form 7 の最近のバージョンでは、first_as_label を使用して、ユーザーが選択しない場合にエントリとして検証されないプレースホルダー テキストを作成できます。プレースホルダー テキストをオプション リストの最初のラベルにするだけです。

[select* food-choice first_as_label "Preferred food?" "Cake" "Pizza" "Burger" "Salad" "Donut"]
于 2015-07-01T20:21:12.713 に答える
11

ハード検索の後、このスクリプトが機能し、その要素をターゲットにするときに「---」を置き換えていることがわかりました。これはすべての「---」を変更しています

function my_wpcf7_form_elements($html) {
    $text = 'Please select...';
    $html = str_replace('<option value="">---</option>', '<option value="">' . $text . '</option>', $html);
    return $html;
}
add_filter('wpcf7_form_elements', 'my_wpcf7_form_elements');

このコードをターゲティングに置き換えます

function my_wpcf7_form_elements($html) {
    function ov3rfly_replace_include_blank($name, $text, &$html) {
        $matches = false;
        preg_match('/<select name="' . $name . '"[^>]*>(.*)<\/select>/iU', $html, $matches);
        if ($matches) {
            $select = str_replace('<option value="">---</option>', '<option value="">' . $text . '</option>', $matches[0]);
            $html = preg_replace('/<select name="' . $name . '"[^>]*>(.*)<\/select>/iU', $select, $html);
        }
    }
    ov3rfly_replace_include_blank('menu-569', 'Choose language', $html);
    ov3rfly_replace_include_blank('menu-614', 'Choose country', $html);
    return $html;
}
add_filter('wpcf7_form_elements', 'my_wpcf7_form_elements');

頭痛の種がなくなることを願っています(ソースはこちら

于 2012-11-01T13:55:49.967 に答える
4

jQueryの1行でそれを行うことができます。

– - – を必要なプレースホルダー テキストに置き換えるには、まず、Contact Form 7 オプションでフィールドに ID を指定します。これに続いて、スクリプトタグ間のテーマフッターに次を追加しました。

$("#typeofinjury option:first:contains('---')").html('How Were You Injured?');//Replace ---

このコードは、ID「typeofinjury」を持つドロップダウン メニュー内の最初のオプションを単純に検索します。次に、「どのように負傷しましたか?」というテキストに置き換えます。

スクリーンショットを含むこのソリューションのブログ投稿はこちら

于 2013-01-02T09:42:35.247 に答える
4

文字列の置換が効率的でない場合は、次のように簡単に使用できます。

jQuery(function($) {
    $("select option:first").attr('disabled', 'disabled');// Disable the first value/label ---
  });

また、次のように、wcf7 のショートコードに「first_as_label」を追加して、最初の選択肢が使用したい「ラベル」であることを確認しました。

[select name first_as_label 'label' 'alt1' 'alt2' 'alt3']

最初のオプションを無効にすることにより、wcf7 は有効な代替オプションが選択されるまでフォームを確認しません。

于 2017-05-03T11:08:47.590 に答える