如何从Input type =“ number”获取值,并将其提供给其他输入的value属性

时间:2019-07-24 14:05:46

标签: javascript jquery

我正在尝试编辑表格行。当我尝试对其进行编辑时,以前的值没有更新到新的输入框。我想在新的输入框中获取数字。我尝试传递value="' + $(this).text() + '">',但它适用于type="text",而不适用于type =“ number”。谁能帮忙。

// Edit row on edit button click
$(document).on("click", ".edit", function(){        
    $(this).parents("tr").find("td:not(:last-child, :nth-last-child(2))").each(function(){
        $(this).html('<input type="text" class="heading_label-box" value="' + $(this).text() + '">');
    });  
    $(this).parents("tr").find("td:nth-last-child(3)").each(function(){
        $(this).html('<input type="number" class="heading_total-weight" value="' + $(this).text() + '">');
    });    
    $(this).parents("tr").find(".add, .edit").toggle();
    $(".add-heading, .add-point").attr("disabled", "disabled");
});

我尝试过$(this).val()$(this).value(),但无法获取该值。

2 个答案:

答案 0 :(得分:0)

由于您要使用输入更新的对象是TD,因此应改为:

$(document).on("click", ".edit", function(){        
    $(this).parents("tr").find("td:not(:last-child, :nth-last-child(2))").each(function(){
        let thisVal = $(this).text();
        let inputObj = $('<input type="text" class="heading_label-box"/>');
        inputObj.val(thisVal);
        $(this).html('');
        $(this).append(inputObj);
    });  
    $(this).parents("tr").find("td:nth-last-child(3)").each(function(){
        let thisVal = $(this).text();
        let inputObj = $('<input type="number" class="heading_total-weight"/>');
        inputObj.val(thisVal);
        $(this).html('');
        $(this).append(inputObj);
    });    
    $(this).parents("tr").find(".add, .edit").toggle();
    $(".add-heading, .add-point").attr("disabled", "disabled");
});

答案 1 :(得分:0)

输入数字类型似乎无效。

$(this).html('<input type="number" class="heading_total-weight" value="' + $(this).text() + '">');

.text()返回String,因此它不起作用。