Πράξη με jquery

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 24 Ιαν 2010 18:27

Κώδικας: Επιλογή όλων

Παιδιά έχω φτιάξει αυτό για να κάνει έναν υπολογισμό live σε html σελίδα κάποια πεδία
Αλλά δεν λειτουργεί κάνει συνένωση τα πεδία γιατί ??

   $("#Total").keyup(function () {
          var Price1 = $("#Price").val();
	  var Profit1 = $("#Profit").val();

	  var Total = (Price1 + (Price1 * Profit1) );
      $("#Total").val(Total);

    }).keyup();

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πράξη με jquery

Δημοσίευση από nbc » 24 Ιαν 2010 20:55

1) Δεν έχει νόημα ο handler στο #Total. Υποθέτω, το input γίνεται στο #Price και #Profit. To #Total δείχνει το αποτέλεσμα και μπορεί κάλλιστα να είναι disabled ή read-only.

2) Είναι προτιμότερο να χρησιμοποιήσεις το .change() αντί του .keyup()

3) Το val() επιστρέφει string ή array. Θα πρέπει να το μετατρέψεις σε integer ή float πριν τις πράξεις (parseInt, parseFloat) και το αποτέλεσμα σε string (toString) πριν την ανάθεσή του στο $Total (γι αυτό σου κάνει concatenuation).

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 24 Ιαν 2010 21:30

File auto einai swsto ???

Κώδικας: Επιλογή όλων

	  $("#PriceRetail").keyup(function () {
	  var t = parseFloat(0);
      var Price1 = $("#PriceWholesale").val();
	  var Profit1 = $("#Profit").val();
	  var v = parseFloat(Price1);
	  var n = parseFloat(Profit1);
	  var Total = (v + (v * n) );
	  var t = parseFloat(Total);
      $("#PriceRetail").val(t);
    }).keyup();

to change den paizei

me to keyup paizei alla emfanizei sto pedio auto NaN

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 24 Ιαν 2010 21:46

file an sou einai eukolo voithise me pws na to kano

prwti fora douleuw jquery kai genika javascript gnorizo kati liga

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 24 Ιαν 2010 21:48

des ti exw kanei

Κώδικας: Επιλογή όλων

$("#PriceRetail").keyup(function () {
	  var t = 0.00;
	  var Prive1 = 0;
      var Price1 = $("#PriceWholesale").val();
	  var Profit1 = ($("#Profit").val() / 100);
	  var v = parseFloat(Price1);
	  var n = parseFloat(Profit1);
	  var Total = (v + (v * n) );
	  var t = parseFloat(Total);
      $("#PriceRetail").val(t);
    }).keyup();
Eyxaristo file

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πράξη με jquery

Δημοσίευση από nbc » 24 Ιαν 2010 22:06

Ξέχασες το toString() :)

Κώδικας: Επιλογή όλων

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http&#58;//www.w3.org/TR/html4/strict.dtd">
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Test Page</title>
    <script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"</script>
    <script>
        jQuery&#40;function&#40;$&#41;
        &#123;
            $&#40;'#price,#profit'&#41;.keyup&#40;function&#40;&#41;
            &#123;
                var price  = parseFloat&#40;$&#40;'#price' &#41;.val&#40;&#41;&#41;;
                var profit = parseFloat&#40;$&#40;'#profit'&#41;.val&#40;&#41;&#41;;
                var total  = Math.round&#40;price + &#40;&#40;price*profit&#41;/100&#41;&#41;;
                
                $&#40;'#total'&#41;.val&#40;total.toString&#40;&#41;&#41;;
            &#125;&#41;;
        &#125;&#41;;
    </script>
</head>

<body>

Price  <input type="text" id="price" name="price" />
Profit <input type="text" id="profit" name="profit" />
Total  <input type="text" id="total" name="total" disabled="disabled" />

</body>

</html>

To .change() παίζει όταν το πεδίο χάσει το focus.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πράξη με jquery

Δημοσίευση από fafos » 24 Ιαν 2010 23:56

ego den exo katalavei pos tha kanei ypologismo? einai kommati mias allhs formas? tha xrhsimopoiei kapoio event (auto to keyup den mou kathete kala)? kai an einai aplo event kai oxi ena submit button pos tha to katalavei o asxetos xrhsths san emena as poume oti prepei na pathsei kapoio plhktro h na kanei klik mesa sto field tou total? :roll:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πράξη με jquery

Δημοσίευση από nbc » 25 Ιαν 2010 07:18

Φαντάσου μια καρτέλα προϊόντος, με πεδία "Κόστος" και "Margin" (ποσοστό κέρδους). Ι ιδέα - υποθέτω - του dpa είναι ότι ο χρήστης εισάγοντας τα πεδία αυτά βλέπει realtime απεικόνιση της τελικής τιμής. Το πεδίο "total" μπορεί να είναι και ένα <span id="total"></span>, και να ενημερώνεται μέσω της $(#total).text(total.toString());.

Το keyup() δουλεύει όσο το field (στο οποίο έχει γίνει assigned) έχει focus. Στο συγκεκριμένο παράδειγμα, μόνον όσο ο χρήστης "πειράζει" τα price και profit. Δεν χρειάζεται να ξέρει τίποτα. Απλά εισάγει και βλέπει.

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 25 Ιαν 2010 10:06

Σωστά nbc θέλω να βλέπω realtime απεικόνιση της τελικής τιμής.

Τελικά θα το κάνω με keyup ή me change ????

Γιατί το total να το κάνω string αφού θέλω να το περάσω στην βάση ως decimal

Σε ευχαριστούμε πολύ φίλε nbc

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πράξη με jquery

Δημοσίευση από nbc » 25 Ιαν 2010 11:48

Το αν θα το κάνεις με keyup() ή change() είναι θέμα δικό σου. Εγώ, όπως σου είπα, θα το έκανα με change(). Δοκίμασε και τα δύο, και αποφάσισε. Δεν χρειάζεται αλλαγή στον κώδικα της συνάρτησης. Το keyup() είναι πιο εφετζίδικο. Το change() είναι πιο unobtrusive.

To total πρέπει να το κάνεις string γιατί αυτό περιμένει η val(value). Άλλωστε, η (x)html δεν καταλαβαίνει από ακεραίους - τα πάντα είναι strings. Το αν σου δουλεύει χωρίς τη μετατροπή αυτό σημαίνει πως κάπου γίνεται implicit conversion. Δεν το θέλεις αυτό. Πρέπει να γίνει string, δεν το συζητάω :D Αν θέλεις να το φορμάρεις, βρες ένα sprintf plugin για ευκολία.

(το πως αποθηκεύεται στη βάση, είναι αδιάφορο - έτσι κι αλλιώς, εσύ string θα λάβεις από τη φόρμα!)

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 25 Ιαν 2010 15:58

File eisai koryfaios mia xara.

Na sou pw otan vazo mia timi 10.50 einai ok
otan omws vazo 10,50 me komma diladi mou emfanizei lathos apotelesma.

Auto pws mporo na to kano replace me to jquery
??

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πράξη με jquery

Δημοσίευση από fafos » 25 Ιαν 2010 16:30

Κώδικας: Επιλογή όλων

                var profit = parseFloat&#40;$&#40;'#profit'&#41;.val&#40;&#41;.replace&#40;',','.'&#41;&#41;;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 25 Ιαν 2010 16:36

xmm toso aplo itane

Eyxaristo file fafo

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 02 Φεβ 2010 13:24

Παιδιά όταν τα πεδία τα έχω στην ίδια σελίδα όλα είναι οκ ο υπολογισμός γίνετε μια χαρά.

Όταν όμως φορτώνω τα πεδία με ajax + php ο υπολογισμός δεν γίνετε

echo "Τιμή Αγοράς:<br /><input type=\"text\" name=\"PriceWholesale\" value=\"0\" id=\"PriceWholesale\" size=\"20\" /></td>";


γιατί ??

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πράξη με jquery

Δημοσίευση από dpa » 03 Φεβ 2010 13:07

Παιδιά δεν ξέρει κανείς γιατί συμβαίνει αυτό ???

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες