【问题标题】:Contact Form 7 watermark for select menu选择菜单的联系表格 7 水印
【发布时间】:2012-10-22 03:06:31
【问题描述】:

我正在寻找一种在选定字段上添加水印的方法。

这不起作用 ->

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

要输入未通过验证的无效值,我必须输入 include_blank

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

但问题是我有--- 作为水印,这就是我想要改变的......

【问题讨论】:

    标签: php wordpress contact-form-7


    【解决方案1】:

    Contact Form 7 的最新版本允许使用 first_as_label 创建占位符文本,如果用户不进行选择,则该占位符文本不会作为条目进行验证。只需将占位符文本设置为选项列表中的第一个标签即可。

    [select* food-choice first_as_label "Preferred food?" "Cake" "Pizza" "Burger" "Salad" "Donut"]
    

    【讨论】:

    • 哇。有用。但在验证错误中,它不会突出显示为红色。任何建议。
    • 像魅力一样工作!
    • @Habeeb 不要忘记给“*”这样的 [select* name ... ...]
    【解决方案2】:

    经过艰苦的搜索,我发现这个脚本正在工作并在定位到该元素时替换了“---” 这个正在改变所有的“---”

    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');
    

    希望这会让你们中的一些人头疼 (来源here

    【讨论】:

    • $select = str_replace('', ' ', $matches[0]);真棒黑客
    【解决方案3】:

    试试这个:

    [select* menu-206 first_as_label "Select doctor" "David Mikaberidze" "Sophio Gelashvili" "Maya Dolidze"]
    

    【讨论】:

    • 这应该被接受为答案,因为它与联系表 7 直接相关
    【解决方案4】:

    一行jQuery就可以搞定。

    为了用我想要的占位符文本替换 - - -,我首先 all 在 Contact Form 7 选项中为这些字段提供了一个 ID。下列的 为此,我在脚本标签之间的主题页脚中添加了以下内容。

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

    代码只是在下拉菜单中查找第一个选项 其 ID 为“typeofinjury”。然后它用文本替换它 “你是怎么受伤的?”。

    此解决方案的博文与截图是Here

    【讨论】:

    • 虽然我在 2 个月前找到了答案,但对其他人来说可能更短。
    • $("#typeofinjury option:first:contains('---')").html('你是怎么受伤的?').attr('disabled', true);试试它作为实际占位符的工作,用户不能选择 1 个值,我也总是使用这个
    【解决方案5】:

    如果你发现字符串替换效率低下,你可以简单地使用这个:

    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 将不会确认表单,直到选择了启用的选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2017-05-25
      • 2020-10-15
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多