2009-06-27 7 views
0

Ich ziehe Produktpreis von einer anderen Seite. Dann multipliziere ich es mit der Menge, die im Eingabefeld für die Menge eingegeben wurde. Das Problem ist, wenn ich vergessen habe, den Mengenwert einzugeben, bevor ich Produktpreisdaten abrufe oder wenn ich das Mengenfeld später ändere, wird der endgültige Gesamtpreis nicht aktualisiert. Ich hoffe, ich habe es deutlich erklärt.Multiplizieren Feld Wert mit abgerufenen Wert jQuery

javascript:

$('#AddProduct').click(function() { 
    var i = 0; 
    var adding = $(+(i++)+'<div class="row'+(i)+'"><div class="column width50"><input type="text" id="PRODUCTNAME" name="PRODUCTNAME'+(i)+'" value="" class="width98" /><input type="hidden" class="PRODUCTID" name="PRODUCTID" /><input type="hidden" class="UNITPRICE" name="UNITPRICE'+(i)+'" /><small>Search Products</small></div><div class="column width20"><input type="text" class="UNITQUANTITY" name="UNITQUANTITY'+(i)+'" value="" class="width98" /><small>Quantity</small></div><div class="column width30"><span class="prices">Unit Price:<span class="UNITPRICE"></span><br />Total Price:<span class="TOTALPRICE"></span><br /><a href="#" id="RemoveProduct(".row'+(i)+'");">Remove</a></span></div>');  
    $('#OrderProducts').append(adding); 

    adding.find("#PRODUCTNAME").autocomplete("orders.cs.asp?Process=ListProducts", { 
     selectFirst: false 
    }).result(function(event, data, formatted) { 
     if (data) { 
      adding.find(".UNITPRICE").html(data[1]); 
      adding.find(".PRODUCTID").val(data[2]); 
      adding.find(".TOTALPRICE").html(data[1] * $('.UNITQUANTITY').val()); 
     } 
    }); 

    return false; 
}); 

$('#RemoveProduct').click(function() { 
    $().remove(); 

    return false; 
}); 

mein html:

 <fieldset> 
      <h2>Order Items</h2> 
      <div id="OrderProducts"> 
       <a href="#" id="AddProduct"><img src="icons/add.png" alt="Add" /></a> 
      </div> 
     </fieldset> 
  • bearbeiten

Jetzt habe ich es total versaut. Entfernen einer Zeile nicht mehr als gut funktioniert ...

Antwort

0

Sie etwas tun können:

$('input.UNITQUANTITY').blur(function() { 
    var $column = $(this).closest('div.column'); 
    var unit = $column.find('.UNITPRICE').html(); 
    $column.find('.TOTALPRICE').html(unit * $(this).val()); 
}); 

Ich bin nicht sicher, wie Sie Ihre HTML-Setup, so dass Sie verschiedene Verlegetechniken benötigen, aber die Die Idee bleibt gleich (aktualisieren Sie das Feld, wenn sich die Einheitenmenge ändert).

+0

Eigentlich habe ich darüber nachgedacht, aber da Benutzer können mehrere Feldsätze hinzufügen, (PRODUCTNAME1, UNITQUANTITY1, UNITPRICE1, PRODUCTNAME2, UNITQUANTITY2, UNITPRICE2 , PRODUCTNAME3, UNITQUANTITY3, UNITPRICE3) es hat nicht funktioniert. Ich habe den Passwortschutz deaktiviert. Hier ist der Testlink: http://refinethetaste.com/html/cp/?Section=orders&Process=AddOrder – Efe

+0

Ich aktualisierte den Code, um mehrere Eingaben entsprechend dem HTML zu berücksichtigen –

+0

Hi wieder, Ich versuchte mit aktualisierten Codes, kein Fehler, aber auch nicht funktioniert. Sie können es auch selbst ausprobieren. – Efe

0

für den Link Entfernen können Sie dies versuchen:

<a href="#" id="row'+i+'");" class="remove">Remove</a></span> 
$('a.remove').live('click',function() { 
    $('div.'+$(this).attr('id')).remove(); 
});