Ich versuche, ein Formular mit einigen Radio-Buttons und einem Bereich Eingabe mit jquery zu validieren (die Seite verwendet jquery mobile für die Widgets).Clientseitige Validierung erkennt keine bestimmte Eingabe == 0; Warum?
Server-Seite, sehe ich ein paar Anfragen wo Preis = 0. Ich weiß nicht, wie diese durch die clientseitige Validierung gleiten. Kann jemand Löcher sehen, durch die es möglich wäre, Preis = 0 zu geben? Gibt es irgendwelche potenziellen Browser-Quirks, die es einem Browser erlauben, die Validierung zu umgehen (abgesehen von der Deaktivierung von JavaScript)? Leider habe ich kein Logging eingerichtet, um Browser-User-Agents mit den Daten abgleichen zu können. Hier ist eine zusammengefasste Version der Vorlage:
<form>
<p>First question:
<input type="radio" name="taste" value="something">
<input type="radio" name="taste" value="somethingelse">
</p>
<p>Last question:
<input type="range" name="price" value="0">
</p>
<button type="submit" id="next" class="ui-btn">Next</button>
</form>
<script>
$("#next").click(function(event){
event.preventDefault();
if($price.val() == 0 && $("[name=taste]:checked").length > 0){
$("#error-messages").text("You forgot the last question!");
} else if($("#price").val() > 0 && $("[name=taste]:checked").length == 0){
$("#error-messages").text("You forgot the first question!");
} else if($("#price").val() == 0 && $("[name=taste]:checked").length == 0){
$("#error-messages").text("Please complete the form.");
} else {
$("#myform").submit();
}
});
</script>
Diese Frage bezieht sich auf Jquery Validierung - was auf dem Server ist sollte keine Rolle spielen. – Escher
Da Sie Radiobuttons verwenden, können Sie '$ (" [name = taste] ") verwenden. Val() == null' anstelle von' $ ("[name = taste]: aktiviert"). Length == 0 ' . – reporter