2009-06-27 12 views
0

私は別のページから製品価格を引きます。次に、数量入力欄に入力した数量を掛けます。問題は、商品価格データを引き出す前に数量値を入力することを忘れた場合、または数量項目を後で変更した場合、最終総価格は更新されません。私はそれを明確に説明してくれることを望む。取得した値にフィールド値を掛ける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; 
}); 

私のhtml:

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

今、私は完全にそれを台無しに。行を削除すると、あなたはこのような何かを行うことができます...だけでなく、もう

答えて

0

が動作していない:

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

私はあなたが別のトラバース技術が必要になる場合がありますので、あなたのHTMLを設置しているかわからないんだけど、アイデアは変わりません(単位量が変わるたびにフィールドを更新します)。

+0

が、私は考えたが、ユーザーは複数のフィールドセット、(PRODUCTNAME1、UNITQUANTITY1、UNITPRICE1、PRODUCTNAME2、UNITQUANTITY2、UNITPRICE2を追加することができますので、 、PRODUCTNAME3、UNITQUANTITY3、UNITPRICE3)それは動作しませんでした。パスワード保護を無効にしました。 http://refinethetaste.com/html/cp/?Section=orders&Process=AddOrder – Efe

+0

私は、HTMLに基づいて複数の入力を考慮に入れてコードを更新しました –

+0

こんにちは、 私は更新されたコードを試してみましたが、エラーもなく動作しません。あなたもそれを自分で試すことができます。 – Efe

0

削除リンクのためにあなたはこれを試みることができる:

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