Gli input con una convalida inizialmente non sono contrassegnati come non validi finché il valore non cambia. Come posso ripristinare questo stato iniziale?Ripristina stato input non valido HTML5
Il mio problema in dettaglio: ho un semplice modulo d'ordine. Se l'utente fa clic sul pulsante "aggiungi elemento", clonato il primo elemento e svuoto i campi di input. Ma dal momento che sto usando la convalida html5, lo svuotamento li rende non validi.
Questo è ciò che accade dopo aver fatto clic su "Aggiungi prodotto", anche se la prima serie di campi è valido:
Demo: http://jsfiddle.net/WEHdp/ (vista in Firefox):
<form action="/orders/preview" method="post">
<div class="orderData">
<input name="order[order_items_attributes][0][articleno]" pattern="[0-9]{4}" required />/
<input name="order[order_items_attributes][0][colorno]" pattern="[0-9]{3}" required />
<div>
<a href="#" class="removeOrder">Remove product</a>
<a href="#" class="addOrder">Add product</a>
</div>
</div>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script>
$(document).ready(function() {
$(".addOrder").live("click", function (event) {
event.preventDefault();
// Clone div
$('.orderData:first').clone().insertAfter(".orderData:last");
// Empty the fields
$('.orderData:last input').val("");
});
$(".removeOrder").live("click", function (event) {
event.preventDefault();
if($('.orderData').size() > 1){
$(this).parents('.orderData').remove();
}
});
});
</script>
Puoi inserire anche il codice pertinente. – defau1t
Ho aggiornato la domanda. – iGEL
Cosa intendi esattamente per "renderli non validi"? Non ti viene richiesto all'interno di un "messaggio richiesto sul campo" fino a quando non premi Invio, giusto? – Bart