2012-05-25 25 views
33

Estoy intentando cambiar el idioma del mensaje de error en el campo de formulario html5.cambiando el idioma del mensaje de error en el campo obligatorio en el formulario de contacto html5

tengo este código:

<input type="text" name="company_name" oninvalid="setCustomValidity('Lütfen işaretli yerleri doldurunuz')" required /> 

pero en enviar, incluso el campo no está en blanco, todavía consigo el mensaje de error.

he intentado con <input type="text" name="company_name" setCustomValidity('Lütfen işaretli yerleri doldurunuz') required />

pero entonces aparece el mensaje de Inglés. ¿Alguien sabe cómo puedo mostrar el mensaje de error en otro idioma?

Saludos, Zoran

+0

¿Se puede mostrar la función 'setCustomValidity'? – antyrat

+0

Pensé que está construido en función ??? ¿No lo es? – Zoran

Respuesta

49

setCustomValidity 's propósito no es sólo para establecer el mensaje de Validación, éste sí marcas el campo como no válidos. Le permite escribir comprobaciones de validación personalizadas que no son compatibles de forma nativa.

Tiene dos formas posibles de configurar un mensaje personalizado, uno fácil que no involucre Javascript y otro que sí lo haga.

La manera más fácil es simplemente usar el atributo title en el elemento de entrada; su contenido se muestra junto con el mensaje estándar del navegador.

<input type="text" required title="Lütfen işaretli yerleri doldurunuz" /> 

enter image description here

Si sólo desea que el mensaje personalizado que se mostrará, se requiere un poco de Javascript. He proporcionado ambos ejemplos en this fiddle.

+0

Iré con la solución javacript. ¿alguna forma fácil de verificar todos los campos vacíos? en mi caso, todos los campos son obligatorios, y la forma es bastante larga. ¿Cómo se puede reescribir el javascript, por lo que se verificarán todos los campos? o debe ser uno por uno? – Zoran

+0

el código con el título funciona solo con CSS personalizado supongo o solo en algún navegador. Lo agrego y no puedo ver el mensaje en turco – Zoran

+0

He agregado una [versión actualizada] (http://jsfiddle.net/zpkKv/3/) que debe verificar todas las entradas, áreas de texto y campos de selección. ¿En qué navegador estás probando? La validación de formularios HTML5 no es compatible en todos los ámbitos. – janfoeh

9

HTML:

<form id="myform"> 
    <input id="email" oninvalid="InvalidMsg(this);" name="email" oninput="InvalidMsg(this);" type="email" required="required" /> 
    <input type="submit" /> 
</form> 

javascript:

function InvalidMsg(textbox) { 
    if (textbox.value == '') { 
     textbox.setCustomValidity('Lütfen işaretli yerleri doldurunuz'); 
    } 
    else if (textbox.validity.typeMismatch){{ 
     textbox.setCustomValidity('please enter a valid email address'); 
    } 
    else { 
     textbox.setCustomValidity(''); 
    } 
    return true; 
} 

Demostración:

http://jsfiddle.net/patelriki13/Sqq8e/4

20

su olvidemos this en oninvalid, cambiar su código con esto:

oninvalid="this.setCustomValidity('Lütfen işaretli yerleri doldurunuz')" 

enter image description here

<form><input type="text" name="company_name" oninvalid="this.setCustomValidity('Lütfen işaretli yerleri doldurunuz')" required /><input type="submit"> 
 
</form>

+1

gracias, lo hizo genial –

+0

Lamentablemente esto no funcionó para mí. Después de que traté de enviar un campo vacío, apareció el mensaje, pero siempre apareció, incluso si llené el campo. –

+0

"Desafortunadamente esto no funcionó para mí ..." ¡Olvídate de la etiqueta! –

5

Sé que esto es una entrada antigua, pero quiero compartir mi experiencia.

HTML:

Javascript (jQuery):

$('input[required]').on('invalid', function() { 
    this.setCustomValidity($(this).data("required-message")); 
}); 

Ésta es una muestra muy simple. Espero que esto pueda ayudar a cualquiera.

-1
<input type="text" id="inputName" placeholder="Enter name" required oninvalid="this.setCustomValidity('Please Enter your first name')" > 

esto le puede ayudar aún más mejor, rápido, práctico & más fácil.

Cuestiones relacionadas