2016-10-22 5 views
-3

Ich bin ein Neuling im IKT-Kurs, und wir haben ein Projekt.Mein jQuery funktioniert nicht

Ich arbeite derzeit für meine jQuery-Code für Einkaufswagen hinzufügen. Wenn ich wähle, wie viele ich zum Beispiel 5 kaufen werde, wenn ich auf Warenkorb hinzufügen klicke, wird das Gesamtergebnis im Textfeld angezeigt. Aus irgendeinem Grund wird es nicht funktionieren. Ich habe bereits JavaScript ausprobiert, aber es wird auch nicht funktionieren.

Hier ist mein Code:

$(function() { 
 
    var $myNumber = $("#myNumber"); 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = $myNumber.val(); 
 
    $('#item').val($(input).val() * $('5000').val()); 
 

 
    }); 
 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
    <head></head> 
 
<body> 
 
<input type="text" id="item" readonly> 
 
    <input type="number" id="myNumber" min="1" max="5"> 
 
    <button type="button" class="button" id="add">Add Cart</button> 
 
<button type="button" class="button" id="Reor">ReOrder</button> 
 
    </body> 
 
    </html>

Aus irgendeinem Grund das Ergebnis, das NaN ist, wird kommen. Was habe ich verpasst? Was habe ich falsch gemacht?

+4

Der beste Rat, den wir wirklich Sie ist geben können: Ihre Zeit beim nächsten Mal besser zu planen. Schauen Sie auch nach, was ['NaN'' (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NaN) bedeutet, und arbeiten Sie dann rückwärts, um herauszufinden, warum das Ergebnis 'NaN' ist . –

+0

'$ ('5000'). Val()' - Was zum Teufel ist das? Ich schätze, Sie haben keine '<5000 />' Tags. Sie erhalten NaN, weil Sie undefined durch eine Zeichenkette multiplizieren. – Li357

+1

Ich bin ein Student und ich habe auch ein paar Nebenfächer. Hier auf den Philippinen ist es bereits das Ende des ersten Halbjahres. Projekte wurden angehäuft. Ich arbeite dieses Projekt fast den ganzen Monat und bin kurz davor, es zu beenden. Nur muss ich dieses Problem lösen, dann bin ich schon fertig. –

Antwort

2

Das ist Ihr Problem:

$('#item').val($(input).val() * $('5000').val()); 

Sie haben noch $('5000') zu verwenden ... einfach nur ganzzahlige Werte verwenden, um eine Berechnung durchzuführen. Sie gespeichert bereits den Wert auf die input Variable (input enthält eine Reihe bereits) ... Sie diese Variable es multiplizieren mit 5000.

$('#item').val(input * 5000); 

$(function() { 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = parseInt($("#myNumber").val(),0); 
 
    $('#item').val(input * 5000); 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
    <head></head> 
 
<body> 
 
<input type="text" id="item" readonly> 
 
    <input type="number" id="myNumber" min="1" max="5"> 
 
    <button type="button" class="button" id="add">Add Cart</button> 
 
<button type="button" class="button" id="Reor">ReOrder</button> 
 
    </body> 
 
    </html>

bearbeiten können: Verwenden Sie parseInt() auf Ihren Wert! value ist vom Typ string.

var input = parseInt($myNumber.val(),0); 
3

Warum muss alles mit $()?

nur

Eingang * 5000

$(function() { 
    var $myNumber = $("#myNumber"); 
    var $add = $("#add"); 

    $add.click(function() { 
    var input = $myNumber.val(); 
    $('#item').val(input * 5000); 

    }); 
}); 
0

Warum haben Sie $ ('5000'). Val(), können Sie es nicht benötigen folgenden Ausschnitt überprüfen

$(function() { 
 
    var $myNumber = $("#myNumber"); 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = parseInt($myNumber.val(),10); 
 
    $('#item').val(input * 5000); 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="item" readonly> 
 
    <input type="number" id="myNumber" min="1" max="5"> 
 
    <button type="button" class="button" id="add">Add Cart</button> 
 
<button type="button" class="button" id="Reor">ReOrder</button>

Verwenden Sie parseInt, um zu konvertieren Ihre Eingabe zu einer Nummer Ich hoffe, es hilft

0

Bei der Eingabe haben Sie bereits den Wert des Elements # myInput und $ ('5000') wird nicht benötigt. Benutze einfach die Nummer.

Try this:

$(function() { 
 
    var $myNumber = $("#myNumber"); 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = $myNumber.val(); 
 
    $('#item').val(input * 5000); 
 

 
    }); 
 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
    <head></head> 
 
<body> 
 
<input type="text" id="item" readonly> 
 
    <input type="number" id="myNumber" min="1" max="5"> 
 
    <button type="button" class="button" id="add">Add Cart</button> 
 
<button type="button" class="button" id="Reor">ReOrder</button> 
 
    </body> 
 
    </html>

Verwandte Themen