javascript
  • jquery
  • 2015-05-29 80 views 3 likes 
    3

    我在我的頁面中有一個動態表單,並且包含了一個自動計算總數。 現在我的問題是我想用數據的屬性來獲取特定的輸入值:如何使用tbody中的數據屬性獲取輸入值?

    我有這樣的代碼:

    $('#add-particular').on('click', function(){ 
    
         var add_row = '<tbody id="row-parent-' + quot_row + '">'; 
          add_row += ' <tr id="quot-parent-' + quot_row + '" class="uk-animation-slide-left" style="background: #C8D4DA">'; 
          add_row += '  <td class="uk-text-center uk-text-bold">' + quot_row + '.0</td>'; 
          add_row += '  <td class="uk-text-center"><input type="text" class="uk-form-width-medium" name="quotation[' + quot_row + '][\'particular\']" data-name="particular" /></td>'; 
          add_row += '  <td class="uk-text-center"><input type="number" min="0" name="quotation[' + quot_row + '][\'unit\']" data-name="unit" class="uk-form-width-small uk-text-center" value="0" onClick="this.select()" onChange="computeParentTotal(' + quot_row + ', \'int\')" /></td>'; 
          add_row += '  <td class="uk-text-center">'; 
          add_row += '   <select name="quotation[' + quot_row + '][\'unit_label\']" class="uk-form-width-small" data-name="unit_label">'; 
          add_row += '    <option value="">--</option>'; 
          add_row += '    <option value="sqm">Sqm</option>'; 
          add_row += '    <option value="lot">Lot</option>'; 
          add_row += '    <option value="sets">Sets</option>'; 
          add_row += '   </select>'; 
          add_row += '  </td>'; 
          add_row += '  <td class="uk-text-center"><input type="text" class="uk-text-right uk-form-width-small" value="0.00" onChange="computeParentTotal(' + quot_row + ', \'dec\')" name="quotation[' + quot_row + '][\'unit_price\']" data-name="unit_price" /></td>'; 
          add_row += '  <td class="uk-text-center"><input type="text" class="uk-text-right uk-form-width-small" id="parent-subtotal-' + quot_row + '" readonly name="quotation[' + quot_row + '][\'total_price\']" data-name="total_price"/></td>'; 
          add_row += '  <td class="uk-text-center"><button type="button" onClick="addParentParticular(' + quot_row + ')" class="uk-button uk-button-primary"><i class="fa fa-plus-circle"></i></button> <button type="button" class="uk-button uk-button-danger" onClick="removeParentParticular(' + quot_row + ')"><i class="fa fa-minus-circle"></i></button></td>'; 
          add_row += ' </tr>'; 
          add_row += '</tbody>'; 
    
         $('#no-quot').remove(); 
         $('#quotation-list').append(add_row); 
    
         quot_row++; 
    
        }); 
    

    而且我有一個事件觸發這樣的:

    function computeParentTotal(id, type) { 
        var unit = $('#quot-parent-' + id + ' td').data('unit').val(); 
        $('#parent-subtotal-' + id).val(unit); 
    } 
    

    但我得到以下錯誤:

    TypeError: $(...).data(...) is undefined

    回答

    2

    您需要使用attribute equals selector作爲unitdata-name是屬性

    var unit = $('#quot-parent-' + id + ' td input[data-name="unit"]').val(); 
    

    var unit = $('#quot-parent-' + id + ' td').data('unit')將嘗試從第一td元件得到在'#quot-parent-' + id元件中不存在這樣的誤差的unit的值的值。

    +0

    哇謝謝它的作品。 – Jerielle

    +0

    是的你是正確的我沒有在選擇器中包含輸入標籤:) – Jerielle

    相關問題