gpt4 book ai didi

javascript - 在克隆带有文本框的 html 行时,触发新文本框

转载 作者:行者123 更新时间:2023-12-02 14:57:33 25 4
gpt4 key购买 nike

我试图在单击时创建重复行,重复行是该 html 表的最后一行,但问题是在新创建的行上,文本框不会触发,因为类与原始类相同,但在按键数字功能,添加逗号并检查字母是否发生

Demo JS Fiddle

html:

<table id='tbl'>
<tbody>
<tr>
<td>
<p>cell</p>
</td>
<td>
<input name="txtMSExMarCardFee2" type="text" class="Stylednumber">
</td>
</tr>

</tbody>
</table>

<input type="button" id="btnAdd" value="Add New Row"></button>

JS

$("#btnAdd").on("click",function(){

var $tableBody = $('#tbl').find("tbody"),
$trLast = $tableBody.find("tr:last"),
$trNew = $trLast.clone();

$trLast.after($trNew);
});

String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'g'), replacement);
};



$('input.Stylednumber').keyup(function() {
var input = $(this).val().replaceAll(',', '');
if (input.length < 1)
$(this).val('0.00');
else {
var val = parseFloat(input);
var formatted = inrFormat(input);
if (formatted.indexOf('.') > 0) {
var split = formatted.split('.');
formatted = split[0] + '.' + split[1].substring(0, 2);
}
$(this).val(formatted);
}
});

function inrFormat(val) {
var x = val;
x = x.toString();
var afterPoint = '';
if (x.indexOf('.') > 0)
afterPoint = x.substring(x.indexOf('.'), x.length);
x = Math.floor(x);
x = x.toString();
var lastThree = x.substring(x.length - 3);
var otherNumbers = x.substring(0, x.length - 3);
if (otherNumbers != '')
lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;
return res;
}

最佳答案

$('input.Stylednumber').keyup 函数将事件绑定(bind)到当前 dom 中的元素。如果要将事件绑定(bind)到动态创建的元素,则必须指定全局范围,例如 body,或者在这种情况下可以是 table#tbl

$('table#tbl').on('keyup', 'input.Stylednumber', function(){ ... });

这是 fiddle :http://jsfiddle.net/kQpfE/268/

关于javascript - 在克隆带有文本框的 html 行时,触发新文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35681490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com