将值应用于jquery生成的输入字段

时间:2011-12-20 11:05:30

标签: javascript jquery-selectors jquery

我的TD由飞行中的网格对象生成 我正在尝试更改位于内部的第一个 输入的值:

$("#get_isrc").click(function(){
    $.ajax({
        url: 'xtras/isrc.php',
        success: function(data){
            $("#new_isrc").val(data);
            $("#get_isrc").val('Apply');
            $("#get_isrc").addClass('apply');
        }               
    }).error(function(){
        alert('Error');
    });
});


$(".apply").live("click", function(){
    var s = $("td[col=ISRC] input").val();
    if (s === "") { 
        $(this).val(($("#new_isrc").val()));
    } 
});

html - static:

<h3>Generate next ISRC</h3>
    <input id="new_isrc" type="text" />
    <input id="get_isrc" type="button" value="Get next ISRC" />

由jquery生成的html:

<tr id="4"><td><input class="editableInput" type="text" /></td><td col="ISRC" class="editableCell"><input class="editableInput " type="text"></td></tr>
<tr id="1"><td><input class="editableInput" type="text" /></td><td col="ISRC" class="editableCell"><input class="editableInput " type="text"></td></tr>
<tr id="2"><td><input class="editableInput" type="text" /></td><td col="ISRC" class="editableCell"><input class="editableInput " type="text"></td></tr>
<tr id="3"><td><input class="editableInput" type="text" /></td><td col="ISRC" class="editableCell"><input class="editableInput " type="text"></td></tr>

tr 1和2具有来自数据库的ISRC值,tr 3为空,但位于最后

tr 4 - 是新添加的空行,我希望生成的isrc应用于它... 我上面提供的代码不起作用。为什么呢?

1 个答案:

答案 0 :(得分:0)

您正在将.val()调用到输入数组中,请执行以下操作:

$("td[col=ISRC] input").each(function() {
    // each iteration function
    var s = $(this).val();
    if (s === "") { 
        $(this).val(($("#new_isrc").val()));
        return false; // stops each iteration
    }
});

修改

如果要为所有输入添加相同的值,请执行以下操作:

$("td[col=ISRC] input").each(function() {
    var s = $(this).val();
    if (s === "") { 
        $(this).val(($("#new_isrc").val()));
    }
});

如果要为所有输入添加动态值,请执行以下操作:

$("td[col=ISRC] input").each(function() {
    var s = $(this).val();
    if (s === "") { 
        $(this).val(getNextValue());
    }
});
function getNextValue() {
    // your business implementation here
}