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 回答
8

试试这个:

[select* menu-206 first_as_label "Select doctor" "David Mikaberidze" "Sophio Gelashvili" "Maya Dolidze"]
于 2016-06-23T11:22:42.847 回答
4

你可以用一行 jQuery 来完成。

要将 - - - 替换为我想要的占位符文本,我首先在 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 回答