2011-12-20 3 views
0

моего ТД порождается объектом сетки на лета я пытаюсь изменить значение кулака пустого входа, который расположен внутри:Применить значение в JQuery генерируется поле ввода

$("#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> 

ТР 1 и 2 имеют значения ISRC из базы данных, тр 3 пуст, но позиционируется в прошлом

тр 4 - вновь добавляется пустая строка, и я хочу сгенерирована ISRC применяется к нему ... код я при условии, выше не работает. Зачем?

ответ

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 
    } 
}); 

Edit:

Если вы хотите добавить такое же значение для всех входов, сделайте следующее:

$("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 
} 
+0

Я думал о добавлении каждого() в мой код! да, это действительно сработало, спасибо. единственная проблема - если у меня есть несколько новых строк - это добавит к каждому из них? ... – Elen

+0

@Elen, см. мое редактирование, надеюсь, что это будет полезно. – falsarella

+0

спасибо, я вижу логику. – Elen

Смежные вопросы