在动态插入的输入上设置 jquery 掩码?
Set jquery mask on a dynamically inserted input?
在动态插入的输入上设置 jquery 掩码?
我正在尝试以向下格式进行,但我没有成功。
新输入失去掩码。
有人可以帮我解决这个问题吗?
<div class="control">
<input type="text" name="item_valor" placeholder="Valor" class="input valor" maxlength="255" id="id_item_valor">
</div>
.
$(document).ready(function(){
$('.valor').mask("#.##0,00", {reverse: true});
});
.
$(document).on('click', '#addItem', function () {
var newElement = $('.control:last').clone(true);
$('.control:last').after(newElement);
})
将每个输入添加到 DOM 后,只需回忆一下您的遮罩功能即可。
$(document).on('click', '#addItem', function () {
var newElement = $('.control:last').clone(true);
$('.control:last').after(newElement);
$('.valor').mask("#.##0,00", {reverse: true});
})
像这样在输入的焦点上设置遮罩
$(document).on("focus", ".valor", function() {
$(this).mask("#.##0,00", {reverse: true});
});
您可能可以将其从 document.ready 函数中删除,并且您可以使用此
将其缩短为 1 行,而不是克隆和追加 2 行
$('.control:last').after($('.control:last').clone());
这是一个有效的 fiddle https://jsfiddle.net/tv7w3Lku/3/
旁注:克隆具有 ID 的元素将创建具有相同 ID 的多个元素,这可能不是最好的方法,您应该坚持使用 class案例
我遇到了同样的问题,发现 .masked() 函数会将掩码应用于动态值。希望这会有所帮助:
HTML:
<input name="phone" type="text">
<button>insert dynamic value</button>
JS:
$(function(){
$("input[name='phone']").mask("(000) 000-0000");
});
$("button").click(function(){
newPhoneNumber = "1231231234";
maskedValue = $("input[name='phone']").masked(newPhoneNumber));
$("input[name='phone']").val(maskedValue);
});
fiddle: https://jsfiddle.net/qcsf3z0j/4/
和文档:https://igorescobar.github.io/jQuery-Mask-Plugin/docs.html#getting-a-masked-value-programmatically
在动态插入的输入上设置 jquery 掩码?
我正在尝试以向下格式进行,但我没有成功。
新输入失去掩码。
有人可以帮我解决这个问题吗?
<div class="control">
<input type="text" name="item_valor" placeholder="Valor" class="input valor" maxlength="255" id="id_item_valor">
</div>
.
$(document).ready(function(){
$('.valor').mask("#.##0,00", {reverse: true});
});
.
$(document).on('click', '#addItem', function () {
var newElement = $('.control:last').clone(true);
$('.control:last').after(newElement);
})
将每个输入添加到 DOM 后,只需回忆一下您的遮罩功能即可。
$(document).on('click', '#addItem', function () {
var newElement = $('.control:last').clone(true);
$('.control:last').after(newElement);
$('.valor').mask("#.##0,00", {reverse: true});
})
像这样在输入的焦点上设置遮罩
$(document).on("focus", ".valor", function() {
$(this).mask("#.##0,00", {reverse: true});
});
您可能可以将其从 document.ready 函数中删除,并且您可以使用此
将其缩短为 1 行,而不是克隆和追加 2 行$('.control:last').after($('.control:last').clone());
这是一个有效的 fiddle https://jsfiddle.net/tv7w3Lku/3/
旁注:克隆具有 ID 的元素将创建具有相同 ID 的多个元素,这可能不是最好的方法,您应该坚持使用 class案例
我遇到了同样的问题,发现 .masked() 函数会将掩码应用于动态值。希望这会有所帮助:
HTML:
<input name="phone" type="text">
<button>insert dynamic value</button>
JS:
$(function(){
$("input[name='phone']").mask("(000) 000-0000");
});
$("button").click(function(){
newPhoneNumber = "1231231234";
maskedValue = $("input[name='phone']").masked(newPhoneNumber));
$("input[name='phone']").val(maskedValue);
});
fiddle: https://jsfiddle.net/qcsf3z0j/4/
和文档:https://igorescobar.github.io/jQuery-Mask-Plugin/docs.html#getting-a-masked-value-programmatically