如何区分不同的输入?

时间:2015-04-22 18:20:56

标签: javascript jquery html

我有一个Button复制此行以选择更多产品。 我的Html:

<td>
    <input type="hidden" class="cod_linha" name="cod_linha[]"style="width: 100%;" />
    <input type="text" name="linha[]" class="linha" style="width: 100%;" />
</td>

问题是,我有两个功能找到产品和其他填充我想要的所有字段,我必须做什么来区分空字段的填充字段?我试过这个:

var table = $('#tabelaPedido');
$(table).each(function() {
if($(this).find('input.linha').val()=== ''){
     Executes my function to fill the fields and to add a new line.
}
else{ }

这也是:

var counter = $(table).find("input.linha").length;
for(var i =0; i < counter; i++){
if($(table).find('input.linha').eq(i).val()== ''{}

但这些代码不会填补另一条空行。看图像:

enter image description here

我填写字段的代码:

function preencherCamposProduto(obj) {
    var table = $('#tabelaPedido');
    $(table).each(function() {
        if($(this).find('input.linha').val()=== '' &&
                $(this).find('input.ref').val()=== '' &&
                $(this).find('input.material').val()=== '' &&
                $(this).find('input.cor').val()=== '' &&
                $(this).find('input.descricao_marca').val()=== ''){
    $.ajax({type: "POST",
        url: '/pedidoOnline/index.php/Pedidos/pesquisarCamposProduto',
        async: false,
        data: {
            cd_cpl_tamanho: obj
        },
        dataType: 'json',
        success: function(data) {
            var linhaId = data[0].idLinha;
            var linhaLabel = data[0].labelLinha;
            var refId = data[0].idRef;
            var refLabel = data[0].labelRef;
            var corId = data[0].idCor;
            var corLabel = data[0].labelCor;
            var marcaId = data[0].idMarca;
            var marcaLabel = data[0].labelMarca;
            var materialId = data[0].idMaterial;
            var materialLabel = data[0].labelMaterial;`

            var table = $('#tabelaPedido');
            $(table).each(function() {
                $(this).find('input.cod_linha').val(linhaId);
                $(this).find('input.linha').val(linhaLabel);
                $(this).find('input.cod_ref').val(refId);
                $(this).find('input.ref').val(refLabel);
                $(this).find('input.cod_material').val(materialId);
                $(this).find('input.material').val(materialLabel);
                $(this).find('input.cod_cor').val(corId);
                $(this).find('input.cor').val(corLabel);
                $(this).find('input.id_marca').val(marcaId);
                $(this).find('input.descricao_marca').val(marcaLabel);

        });


        }
    });
    chamaAdicionarCampo();
    }else{
        console.log('Entrei no else');
    }
    });
}

非常感谢。

3 个答案:

答案 0 :(得分:1)

我已经阅读了您的代码并编写了a sample code in jsfiddle,这就是您正在编写的内容。在我的解决方案中,我使用CSS选择器#tabelaPedido tr:last来选择最后添加的行,然后将值写入此行中的字段。

希望这有帮助。

答案 1 :(得分:1)

以下简单的jquery解决方案可以帮助您:

ILoveCatsLoveHats

结帐DEMO

答案 2 :(得分:0)

得到@zegoline和@semsem的答案我明白了......现在它正在工作!我为每个函数的每个字段添加了$( "tr:last" ).find(),并且#table tr:last也添加了...非常感谢!