使用javascript获取td标记中输入字段的值

时间:2015-09-03 09:40:26

标签: javascript html html-table

我试图获取<td>标记中存在的输入字段的值。

<td class="edit_td1" id="<?php echo $id; ?>">
    <div class="form-group">
        <div class="col-lg-3 inputContainer">
            <input class="form-control cls-quantity" id="quanti_<?php echo $id; ?>" name="number" type="text" />
        </div>
    </div>
</td>
//...some code here
<a href="customer_details.php?shop=<?php echo $_GET['shop'];?>" class="btn btn-info" role="button" onclick="return td_validation();">Generate Bill</a>

和javascript代码是:

function td_validation()
{
    //alert("tds validation");
    var tds = document.getElementById('table_id').getElementsByTagName('td');
    var sum = 0;
    //alert(tds.length);
    for(var i = 0; i < tds.length; i ++)
    {
        if(tds[i].className == 'edit_td1' && tds[i].innerHTML==0)
        {
            //alert(tds[i].innerHTML);
            sum +=i;
        }
    }
    if(sum !=0)
    {
        alert("Enter quantity for "+sum+" fields");
        return false;
    }
    else
    {
        return true;
    }
}

这里我想在输入字段中获取值,如果此值为0,则执行sum +=i

2 个答案:

答案 0 :(得分:1)

以下是您尝试做的更短版本:

function td_validation()
{
    var tds = document.querySelectorAll('#table_id td.edit_td1');
    var sum = 0;
    for(var i = 0; i < tds.length; i++)
    {
        if (tds[i].querySelector('input.cls-quantity').value === "0") {
           sum +=i;
        }
    }

    if(sum !=0)
    {
        alert("Enter quantity for "+sum+" fields");
        return false;
    }
    else
    {
        return true;
    }
}

答案 1 :(得分:0)

@ toivin的回答是正确的,我做了一些修改,

function td_validation()
{
    var tds = document.getElementById('table_id').getElementsByTagName('td');
    var sum = 0;
    for(var i = 0; i < tds.length; i ++)
    {
        if(tds[i].className == 'edit_td1' )
        {
            var a = parseInt(tds[i].querySelector('input.cls-quantity').value);
            if(a==0)
            {
                sum +=i;
            }
        }
    }
    if(sum !=0)
    {
        alert("Quantity should not be zero...!!!");
        return false;
    }
    else
    {
        return true;
    }
}