Применить значение к полю ввода, сгенерированному jquery - PullRequest
0 голосов
/ 20 декабря 2011

мои 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 - статический:

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

HTML, сгенерированный jquery:

<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 голосов
/ 20 декабря 2011

Вы вызываете .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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...