我正在使用按钮来动态生成表单中的新表行,并且这些行包括带有参数的调用函数。我尝试在添加的行上使用JQuery来触发.blur()事件,就像使用硬编码的第一张表行成功完成的一样,但是页面完全忽略了它。因此,我正在尝试从行HTML内触发onblur()事件的另一种途径。我被函数参数卡住了,因为我要么弄乱了转义字符顺序,要么搞乱了翻译。我已经花了几个小时来尝试对Stack Overflow进行研究,所以希望第二组眼睛能够提供帮助。
以下是相关的代码段。存储的html会附加到我的表格行中,该行已经可以使用了。
var strVar = 'myString';
var rowCount = $("#tbodyID td").closest("tr").length;
var rowNum = rowCount + 1;
var line17 = "<td><input type='number' class='form-control' name='named_qty' onblur='function(" + strVar + ")' id='row_R" + rowNum.toString() + "' /></td> ";
大约有25行需要插入不同的html。我能够使它以前运行,但是意识到一个值是硬编码的,因此我需要它是动态的。它调用的函数接受一个字符串。
当插入HTML文档时,此行通常应显示为:
<td><input type="number" class="form-control" name="named_qty" onblur="function('myString')" id="row_R2" /></td>
答案 0 :(得分:0)
我做了一些进一步的研究,并意识到我正在使用JQuery blur()方法:
$('#id').blur( function() { });
并尝试调用这些函数,但没有意识到该方法仅适用于页面加载时已写入DOM的HTML元素。
显然,解决方案是使用JQuery on()方法,如下所示:
$(document).on("blur", '#id', function() { <insert code> });
在W3Schools中,
注意:使用on()方法附加的事件处理程序将同时适用于当前和FUTURE元素(如脚本创建的新元素)。
这消除了将事件函数调用包含在要附加到DOM的HTML行中的必要。