如何在表格内获取触摸旋转的值

How to get value of TouchSpin inside table

本文关键字:触摸 旋转 获取 表格      更新时间:2023-09-26

如何在表中获取 Bootstrap TouchSpin 元素的值?我目前一无所获,因为我不相信它找到了元素。

创建触摸旋转并插入到表格中

var table = document.getElementById("createOrderTable");
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
row.id = 'row' + rowCount;
// TouchSpin element
var cell1 = row.insertCell(1);
var touchSpinID = 'touchspin' + rowCount;
cell1.innerHTML = "<input id='" + touchSpinID +"' type='text' value='1'  name='" + touchSpinID +"'>";
cell1.id = 'cell' + touchSpinID;
//Init TouchSpin
$("input[name='" + touchSpinID +"']").TouchSpin({
verticalbuttons: true,
min: 0,
max: 100000000,
});

遍历表格并获取 Touchspin 的值,下面的方法都不起作用。

var table = document.getElementById("createOrderTable");
var rowCount = table.rows.length;
var productArray = [];
for(i = 1; i < table.rows.length; i++){
    var touchspinID = 'touchspin' + i;
    var touchspinValue = 0;        
    cellID = 'cell' + touchspinID;
    $(cellID).find(touchspinID).each(function(){
        touchspinValue = this.val();
        console.log(touchspinValue);
    });
    $("#createOrderTable tr").each(function () {
        $('td', this).each(function () {
            var value = $(this).find(touchspinID).val();
            console.log(value);
        })
    })
}

查看您的代码,我认为问题在于touchspinIDcellID,因为它们都缺少"#"来表示您正在寻找具有这些特定id的元素。

将这两行从:

var touchspinID = 'touchspin' + i;
cellID = 'cell' + touchspinID;

自:

var touchspinID = '#touchspin' + i;
cellID = '#cell' + touchspinID;

应该可以解决您的问题。此外,您不需要在调用.find后使用 .each,因为单元格将只有一个"touchspin"元素,并且id必须始终是唯一的:

var touchspinValue = $(cellID).find(touchspinID).val();
console.log(touchspinValue);

如果上述方法不能解决您的问题,请在您的问题中包含表格 html。