2016-05-17 14 views
-1

Ich habe eine Fehlerbehebung für ein Formular, mit dem Benutzer einen Betrag auswählen oder einen anderen Betrag auswählen können. Der andere Betrag, wenn Sie darauf klicken, ändert den Betrag auf $ 5. Ich versuche, es zu bekommen, so dass, wenn der Benutzer versucht, eine Zahl wie 10, 15 oder 20 als Beispiele einzugeben, es ihnen erlauben wird, es zu tippen. Momentan konvertiert es alles weniger als 5 für die Startnummer zu 5, was es unmöglich macht.Fehlersuche JS-bedingte

$("#donrAmountInput").on("input", function() { 
    setDonrAmount("Other"); 
}); 

function setDonrAmount(id) { 
    var amt; 
    $('#donrAmountButtons .active').removeClass('active'); 

    if (id == "Other") { 
    amt = $("#donrAmountInput").val() > 5 ? $("#donrAmountInput").val() : 5; 
    $('#otherAmount button').addClass('active'); 
    } 
    else { 
    amt = id.substring(10); 
    $('#donrAmount' + amt).addClass('active'); 
    } 

    $('input#donrAmountInput').val(amt); 
    $('input#donrAmountInput').change(); 
    $('#donrReviewAmount').html(amt); 
} 

Als Referenz hier ist das eigentliche Formular. Hilfe würde sehr geschätzt werden. https://secure.pva.org/site/c.ajIRK9NJLcJ2E/b.9381225/k.8668/FY2016_March_Congressional/apps/ka/sd/donorcustom.asp

+1

So ist Ihr Problem in dieser Zeile 'amt = $ ("# donrAmountInput"). Val()> 5? $ ("# donrAmountInput"). val(): 5; 'das sagt, wenn der Wert größer als 5 ist, benutze es, ansonsten setze es auf 5. – j08691

+0

das ist korrekt. Ich weiß, dass ich es auf 5 für alles weniger als 5 setze, aber ich kann nicht herausfinden, warum es mir 20 eintippt. –

+1

Weil, wenn Sie die "2" in "20" eingeben, sieht es das als weniger als " 5 ". Sie überprüfen, wann immer eine Änderung an der Eingabe vorgenommen wird. – j08691

Antwort

1

Sie können Ihre inputTyp-number angeben min, max, required Attribute und dann überprüfen Sie die Gültigkeit davon über Javascript/jQuery gesetzt.

function myFunction() { 
 
    var inpObj = $("#id1")[0]; 
 
    if (inpObj.checkValidity() === false) { 
 
     $("#demo").html(inpObj.validationMessage); 
 
    } else { 
 
     $("#demo").html(inpObj.value); 
 
} 
 
} 
 
$('button').on('click',function(){ 
 
myFunction(); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="id1" type="number" min="5" max="300" required> 
 
<button>OK</button> 
 

 
<p id="demo"></p>

Verwandte Themen