Javascript получить значение span в соседнем div - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь получить значение скрытого поля (span class="hiddenfield") в соседнем элементе div для ввода.

Я не могу просто использовать элемент getbyelement, так как я использовал систему сетки начальной загрузки для репликации таблицы, такой как среда, и поэтому будет много строк с одинаковым скрытым вводом с разными значениями для каждой строки.

Консоль просто показывает нулевой возврат для console.log(stock_id), а не значение, которое я вижу в скрытом поле.

<div class="container">
<div class="row">

  <div class="col-sm-2 col-form-label">Product Code</div>
  <div class="col-sm-3 col-form-label">Product Description</div>
  <div class="col-sm-1 col-form-label">UOI</div>
  <div class="col-sm-1 col-form-label text-right">Avail</div>
  <div class="col-sm-2 col-form-label">Price £</div>
  <div class="col-sm-1 col-form-label">Margin</div>
  <div class="col-sm-2 col-form-label">Qty Rqd</div>
</div>

<% @stock_items.each do |stock| %>
   <%= form_tag new_line_customer_opportunity_sop_header_sop_details_path(@customer,@opportunity, @sop_header), :method => 'get' do %>
   <div style="margin-top: -4px;" class="form-group row form-element row-bottom-margin">
    <div class="col-sm-2"><font size="-1"><%= stock.product_code %></font></div>
    <div class="col-sm-3"><font size="-1"><%= stock.desc1.titleize %></font></div>
    <div class="col-sm-1 text-right form-group"><font size="-1"><%= stock.uoi %></font></div>
    <div class="col-sm-1 text-right"><font size="-1"><%= strip_trailing_zero(stock.qty_free) %></font></div>
    <div class="col-sm-2"><%= number_field_tag 'unit_price', number_with_precision(stock.price, :precision => 2), class: 'form-control text-right sales_price' %></div>
    <div class="col-sm-1 text-right margin"><font size="-1"><%= number_to_percentage(((stock.price-stock.cost_sop)/stock.price)*100,precision: 0)%></font></div>
    <div class="col-sm-1 stock"><%= number_field_tag 'quantity', 1, class: 'form-control text-right' %></div>
    <div class="col-sm-1"><span class="hiddenfield"><%= hidden_field_tag 'stock_id', stock.id %></span><%= submit_tag 'Add' %></div>
    </div>

  <% end %>
<% end %>
</div>

Мой JavaScript

<script type="text/javascript">

$(".sales_price").on('change', function(){
 var input = $(this)
 console.log(input)

 var sales_price = input.val()? input.val() : 0;
 console.log(sales_price)

 var stock_id = input.closest('.form-element').find('.hiddenfield').text()
 console.log(stock_id)

})
</script>

Я использую логику из этой ссылки , которая говорит, что я должен перейти к общему родителю обоих input и span и использовать оттуда find(), что, как я думал, я сделал используя .form-element.

С благодарностью получена любая помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...