2017-01-30 1 views
0

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> 
+0

Diese Frage bezieht sich auf Jquery Validierung - was auf dem Server ist sollte keine Rolle spielen. – Escher

+0

Da Sie Radiobuttons verwenden, können Sie '$ (" [name = taste] ") verwenden. Val() == null' anstelle von' $ ("[name = taste]: aktiviert"). Length == 0 ' . – reporter

Antwort

1

Try Below-Code:

<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" id="price" 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> 
+0

Was hat sich geändert? Erläuterung? – Escher

+0

In IF Bedingung was ist $ Preis? –

+1

Ersetzen Sie $ price mit get Value mit Preis-ID. –

Verwandte Themen