代码之家  ›  专栏  ›  技术社区  ›  Regolith Luciens

如何更改动态创建的输入元素javascript/jquery的值

  •  0
  • Regolith Luciens  · 技术社区  · 6 年前

    我正在创建一个动态生成销售项目的表单,我已经可以从动态创建的元素调用javascript中的函数,但是随着值的更改,我需要更改其他值。

    显然,我无法设置动态创建的输入的值

    到目前为止,我所做的就是在这里创建动态字段

    <table id="myTable" class="table table-bordered">
    <thead>
        <tr>
            <th>Supplier</th>
            <th>Stock Item</th>
            <th>Quantity</th>
            <th>Sales Price</th>
            <th>Total</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td>
            <select name="Supplier_Number[]" class="form-control " id="Supplier_Number">
    <option value="" selected="selected">Select</option>
    <option value="Supplier-00006">test test 3</option>
    <option value="Supplier-0005">test test</option>
    <option value="Supplier-000007">test test 5</option>
    </select>
        </td>
        <td>
            <select name="Stock_Number[]" class="form-control " id="Stock_Number" onchange="getStockData(event, 1);">
    <option value="" selected="selected">Select</option>
    <option value="Stock-00001">test 1</option>
    <option value="Stock-00002">test</option>
    <option value="Stock-000013">another test</option>
    <option value="Stock-000014">another test 2</option>
    </select>
        </td>
        <td>
            <input type="text" name="Quantity[]" id="Quantity1" onchange="getTotal(1)">
        </td>
        <td>
            <input type="text" name="Sales_Price[]" id="Sales_Price1">
    
            <input type="hidden" name="Purchase_Price[]" id="Purchase_Price1">
        </td>
        <td>
            <input type="text" name="Total[]" id="Total1">
    
        </td>
    </tr>
    </tbody>
    </table>
    

    这就是动态元素的外观

    <tr>
    <td>
        <select name="Supplier_Number[]" class="form-control " id="Supplier_Number2">
    <option value="" selected="selected">Select</option>
    <option value="Supplier-00006">test test 3</option>
    <option value="Supplier-0005">test test</option>
    <option value="Supplier-000007">test test 5</option>
    </select>
    </td>
    <td>
        <select name="Stock_Number[]" class="form-control " id="Stock_Number2" onchange="getStockData(event,2);getTotal();">
    <option value="" selected="selected">Select</option>
    <option value="Stock-00001">test 1</option>
    <option value="Stock-00002">test</option>
    <option value="Stock-000013">another test</option>
    <option value="Stock-000014">another test 2</option>
    </select>
    </td>
    <td>
        <input type="text" name="Quantity[]" class="Quantity2" onchange="getTotal(2)">
    </td>
    <td>
        <input type="text" name="Sales_Price[]" class="Sales_Price2">
    
        <input type="hidden" name="Purchase_Price[]" class="Purchase_Price2">
    </td>
    <td>
        <input type="text" name="Total[]" class="Total2">
    
    </td>
    <td><input type="button" value="Delete"></td>
    </tr>
    

    这就是我试图更改动态元素值的方式

    var sales_price = 'Sales_Price'+count;
    var Total = 'Total'+count;
    var Purchase_Price = 'Purchase_Price'+count;
    var Quantity = 'Quantity'+count;
    $('#'+sales_price).prop('value', 'something');
    $('#'+Total).prop('value', '0');
    $('#'+Quantity).prop('value', '0');
    $('#'+Purchase_Price).prop('value', 'something');
    

    问题:

    无法设置动态元素值。任何帮助都将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ahmed Yousif    6 年前

    您的动态创建的输入没有id属性我想您是无意中将其分配给类的

    然后,可以使用此代码在fix id发出后更改输入值

    var i = 1 //this is the index of added item
    
      $('#sales_price'+String(i)).val( 'something');
      $('#Total'+String(i)).val('0');
      $('#Quantity'+String(i)).val( '0');
      $('#Purchase_Price'+String(i)).val( 'something');