Formulario de contacto 7 marca de agua para seleccionar menú

3 minutos de lectura

Estoy buscando una manera de poner una marca de agua en campos seleccionados.

eso no funciona ->

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

para poner un valor no válido que falla la validación, tuve que poner include_blank

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

pero el problema es que tengo --- como marca de agua, eso es lo que quiero cambiar …

Las versiones más recientes de Contact Form 7 permiten el uso de first_as_label para crear texto de marcador de posición que no se valida como una entrada si los usuarios no hacen una selección. Simplemente haga que el texto de su marcador de posición sea la primera etiqueta en la lista de opciones.

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

  • guau. Funciona. Pero en el error de validación no se resalta en rojo. Alguna sugerencia.

    – Habib

    22 de noviembre de 2015 a las 13:52

  • ¡Funciona de maravilla!

    –Eric Vieira

    13 mayo 2017 a las 12:52

  • @Habeeb no olvides dar “*” así [select* name … … ]

    – Río Adetya Rizky

    13 de diciembre de 2017 a las 13:07

Después de una ardua búsqueda, encontré este script que funciona y reemplaza el “—” cuando se dirige a ese elemento, este está cambiando todos los “—“

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

este código, reemplazándolo con la orientación

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

Espero que eso les ahorre un dolor de cabeza a algunos de ustedes (fuente aquí)

  • $select = str_replace(‘—ón>‘, ‘‘ . $texto . ‘ón>‘, $coincidencias[0]); truco impresionante

    – Santanu

    9 de marzo de 2021 a las 13:40


avatar de usuario
Aarzoo Patel

Prueba esto:

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

  • Esto debe aceptarse como la respuesta, ya que está directamente relacionado con el Formulario de contacto 7

    – Keith Petrillo

    9 de noviembre de 2017 a las 20:34

Puedes hacerlo con una línea de jQuery.

Para reemplazar el – – – con el texto de marcador de posición que quería, primero di a los campos una ID en las opciones del Formulario de contacto 7. Después de esto, agregué lo siguiente en el pie de página de mis temas entre las etiquetas de script.

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

El código simplemente busca la primera opción dentro del menú desplegable que tiene el ID ‘typeofinjury’. Luego lo reemplaza con el texto ‘¿Cómo se lesionó?’.

La publicación de blog para esta solución con capturas de pantalla es Aquí

Si encuentra que el reemplazo de cadenas no es eficiente, simplemente puede usar esto:

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

También me aseguré de que la primera alternativa sea la “etiqueta” que quiero usar, agregando ‘first_as_label’ al código abreviado en wcf7, así:

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

Al deshabilitar la primera opción, wcf7 no confirmará el formulario hasta que se elija esta alternativa habilitada.

¿Ha sido útil esta solución?