2016-03-31 12 views
0

Ich habe ein Formular zur Fehlerbehebung bearbeitet, mit dem Benutzer einen Betrag auswählen oder einen anderen Betrag auswählen können. Der andere Betrag, wenn Sie klicken, ändert den Betrag auf $ 5. Ich versuche, es zu erhalten, so dass, wenn der Benutzer den Betrag von 5 ändert, dass es die amt = zu Benutzereingabe ändert.Fehlerbehebung jQuery-Eingabewert

Das Bit von Skript, das es

function setDonrAmount(id){ 
    var amt = id.substring(10); 
    if(amt == 'Other'){ amt = 5} 
    var others = id.substring(0,10); 
    $("button[id*="+others+"]").removeClass('active'); 
    $('button#'+id).addClass('active'); 
    $('input#donrAmountInput').val(amt); 
    $('input#donrAmountInput').change(); 
    $('#donrReviewAmount').html(amt); 
} 

Als Referenz hier ist die eigentliche Form ändert. 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

Meinst du, dass "$ Other" ausgewählt werden soll, wenn der Benutzer einen benutzerdefinierten Betrag eingibt? –

+0

Ja, ich versuche, auch den anderen Button auszuwählen. –

Antwort

1

Ich habe ein paar Updates zu setDonrAmount() gemacht, um benutzerdefinierte Spenden zu behandeln.

$("#donrAmountButtons").on("click", function() { 
    var amt = id.substring(10); 
    setDonrAmount(amt); 
    $('#donrAmount' + amt).addClass('active'); 
}); 

$("#donrAmountInput").on("focusout", function() { 
    setDonrAmount($("#donrAmountInput").val()); 
    $('#otherAmount button').addClass('active'); 
}); 

function setDonrAmount(val) { 
    var amt = val || 0; 

    if (amt.length < 2 && amt < 5) 
    amt = 5; 

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

    $('#donrAmountButtons .active').removeClass('active'); 
} 
+0

Das macht sehr viel Sinn. Ich habe mir für ein paar Stunden den Kopf darüber zerbrochen, aber ich musste es aus einer anderen Perspektive betrachten ... Coderblock ... lol –

+0

Das Seltsame ist jetzt, dass ich keine Nummer eingeben kann, die mit weniger als 5 beginnt. Wenn ich versuche, 20 oder 15 einzugeben, kann ich das nicht tun. Ich habe ein paar Dinge ausprobiert, aber dein Skript funktioniert einfach nicht. –

+0

Eine Bedingung hinzugefügt, um die Länge der Eingabe zu überprüfen. Wenn es zwei Ziffern oder größer ist, ignoriert es die Prüfung für mehr als 5 –

1

Sie sollten im Eingabefeld nach einem Schlüsselereignis suchen und die Auswahl treffen, wenn dies der Fall ist. So etwas wie ... (innen document.ready)

$('#donrAmountInput').on('keyup', function() { 
    // Probably best to strip any non-numeric characters from the field here 
    amt = $(this).val(); 
    // pseudo-code: $('#donrAmountOther').select(); as I'm not sure about jQuery's handling of input group buttons. There'll be a way to select this one somehow! 
});