2016-05-12 21 views
1

兄弟クラス(.priceToCalc)の値を取得してユーザーが(.numItems)入力に値を入力した後のクラスの値(.totalAmt)。兄弟クラス(.priceToCalc)の値を取得し、兄弟をクリックした後に別のクラス(.totalAmt)の値を設定するには

<table> 
    <tr id="mainRow"> 
     <td> 
      @Html.DisplayFor(modelItem => item.CategoryDesc) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.HasPicture) 
     </td> 
     <td id="tdNumItems"> 
      <form asp-controller="Index" name="Quantity"> 
       <p> 
        Quantity: <input type="text" name="quantity" size="3" id="[email protected](item.itemKey)" class="numItems"> 
       </p> 
      </form> 
     </td> 
     <td id="[email protected](item.itemKey)" class="priceToCalc" data-topass="@item.UnitPrice" > 
      @Html.DisplayFor(modelItem => item.UnitPrice) 
     </td> 
     <td> 
      <form asp-controller="Index" name="Amount"> 
       <p id="price"> 
        Amount: <input type="text" name="Amount" size="5" disabled="disabled" id="[email protected](item.itemKey)" class="totalAmt"> 
       </p> 
      </form> 
     </td> 
    </tr> 
</table> 
$(document).ready(function() { 
    $('.numItems').mouseleave(function() { 
     var numberVal = $(this).val(); 
     var idOfAmt = $(event.target).attr('id'); 
     var valueTomult=($("#tdNumItems").siblings('.priceToCalc').text()); 
     idOfAmt = idOfAmt.split('-'); 
     var idOfPrice; //value of next sibling,don't know this either 
     alert(idOfAmt[1] + '- val>' + numberVal + '-amt>' + valueTomult); 

    }); 
}); 

それだけセレクタ.priceToCalcの最初のループの値を返します。

+0

あなたが注意されていない場合、彼らは複数の結果を返すことができるようあなたは、クラスを使用するときに注意する必要があります。 –

答えて

0

まず、mouseleaveでこれを行うのは少し奇妙です。入力時に計算の変更を確認する方が良いでしょう。これはkeyupを使用して達成できます。実際にあなたが上で計算をベースに必須の子要素を取得するためにfind()、その後、イベントを発生させたinput最寄りtrを見つけるために、DOMのトラバーサルを使用することができる必要が何をすべきか

。このような何か:

$(document).ready(function() { 
    $('.numItems').keyup(function() { 
     var $row = $(this).closest('tr'); 
     var unitPrice = parseFloat($row.find('.priceToCalc').text()); 
     $row.find('.totalAmt').val(this.value * unitPrice); 
    }); 
}); 

Working Example

+0

相手にスポットがあります。私はjqueryの学習曲線の不安定な底にあり、これはそれを並べ替えるのに数時間を要します。再度ありがとう – Brick

+0

問題はありません、喜んで助けてください –