请联系Form 7水印以选择菜单

Ili*_*zis 3 php wordpress contact-form-7

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

那是行不通的 - >

[select* c_type class:ic watermark "choose type" "a" "b" "c"]
Run Code Online (Sandbox Code Playgroud)

为了放置一个无效验证失败的值,我不得不放 include_blank

[select* c_type class:ic include_blank "a" "b" "c"]
Run Code Online (Sandbox Code Playgroud)

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

小智 13

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

[select* food-choice first_as_label "Preferred food?" "Cake" "Pizza" "Burger" "Salad" "Donut"]
Run Code Online (Sandbox Code Playgroud)


Ili*_*zis 9

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

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');
Run Code Online (Sandbox Code Playgroud)

此代码替换为定位

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');
Run Code Online (Sandbox Code Playgroud)

希望这将节省一些你头痛(来源这里)


小智 7

尝试这个:

[select* menu-206 first_as_label "Select doctor" "David Mikaberidze" "Sophio Gelashvili" "Maya Dolidze"]
Run Code Online (Sandbox Code Playgroud)


Fol*_*ley 5

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

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

我还通过将“first_as_label”添加到 wcf7 中的短代码中,确保第一个替代方案是我想要使用的“标签”,如下所示:

[select name first_as_label 'label' 'alt1' 'alt2' 'alt3']
Run Code Online (Sandbox Code Playgroud)

通过禁用第一个选项,wcf7 将不会确认表单,直到选择了启用的替代选项。