我一直在努力,这让我疯狂D:
所以,我有这段代码:
<table class="table table-condensed table-bordered table-hover" id="tbl_indicaciones">
<thead><tr>
<th>INDICACIÓN FARMACOLÓGICA</th><th>POSOLOGÍA</th><th>REALIZADO</th>
</tr></thead>
<tbody>
<tr>
<td><input type="text"></td>
<td><input type="text" class="txt_posologia"></td>
<td></td>
</tr>
</tbody>
</table>
和
$(".txt_posologia").blur(function(){
guardarIndicacion($(this));
});
var guardarIndicacion = function(elemento){
//REVISAR QUE LOS CAMPOS TENGAN VALORES
var indicacion = $(elemento).parent().parent().find('td:eq(0)').find('input:eq(0)');
if(indicacion.val() == "" || $(elemento).val() == ""){
alert("Debe ingresar ambos campos");
indicacion.focus();
}else{
//REVISO SI SOY EDITABLE
if($(elemento).attr("data-editable") != "false"){
//HAGO ALGO
//AGREGO LINEA A TABLA
try{$("#tbl_indicaciones").find('tbody').
append($('<tr>').
append($('<td>').html("<input type=\"text\">")).
append($('<td>').html("<input type=\"text\" class=\"txt_posologia\">").on('blur', function() {guardarIndicacion($(this))}))
);}catch(e){alert(e.toString)}
//ME HAGO NO EDITABLE
$(elemento).attr("data-editable", "false");
}
}
}
所以,每当我的“输入.txt_posologia”失去焦点时,它就会在我的桌子上添加一个新行。 这工作与我的页面上定义的第一个输入,但它不在新的...
谢谢!
以防万一,fiddle
答案 0 :(得分:3)
如果“新的”是指动态生成的输入,那么这是因为你需要事件委托:
$(document).on('blur', '.txt_posologia', function(){
guardarIndicacion($(this));
});
答案 1 :(得分:2)
以下是您的工作示例: http://jsfiddle.net/GR5sJ/
$( document ).on( "blur", ".txt_posologia", function() {
guardarIndicacion($(this));
});
为了处理这种动态生成的字段,最好使用jquery'on'来获取更多文档: http://api.jquery.com/on/
Mucha suerte!