Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态添加输入并使用.mask无效_Javascript_Jquery - Fatal编程技术网

Javascript 动态添加输入并使用.mask无效

Javascript 动态添加输入并使用.mask无效,javascript,jquery,Javascript,Jquery,在我的项目中,我使用Bootstrap4和jQuery/JavaScript 我有以下代码: $(document).ready(function () { $('.currencyMask').mask("###0.00", {reverse: true}); $('.numbersMask').mask("#", {reverse: true}); }); function getDynamicInput(productType) {

在我的项目中,我使用Bootstrap4和jQuery/JavaScript

我有以下代码:

$(document).ready(function () {
    $('.currencyMask').mask("###0.00", {reverse: true});
    $('.numbersMask').mask("#", {reverse: true});
});

function getDynamicInput(productType) {
    $(".dynamic-content-input").load("{{ route('product.product.feature') }}/" +
                                         productType +
                                         "/@if (!empty($product)){{ $product->id }} @else{{0}} @endif",
                                     function (response, status, xhr) {
    });
}
此代码用于动态输入的结果:

<div class="dynamic-content-input">
    <div class="form-group row">
        <label class="col-form-label text-right col-lg-3 col-sm-12">Pole liczbowe</label>
        <div class="col-lg-9 col-md-9 col-sm-12">
            <input type="text" name="form-2" class="form-control  numbersMask " value="">
        </div>
    </div>
    <div class="form-group row">
        <label class="col-form-label text-right col-lg-3 col-sm-12">Pole tekstowe</label>
        <div class="col-lg-9 col-md-9 col-sm-12">
            <input type="text" name="form-3" class="form-control " value="">
        </div>
    </div>
</div>

波兰里兹堡
波兰特克斯托
这工作做得很好。问题在于JavaScript函数numbersMask

当我在HTML中添加输入时,它工作正常(该函数只允许输入数字)

但是,对于动态添加的输入,它根本不起作用


如何修复它?

将您的代码更改为下面的代码。它也应该适用于您的动态输入

它不起作用的原因是,当加载时,这些动态输入无法被您的需求屏蔽

因此,在这种情况下,我们需要在jQuery中使用事件绑定,并使用jQuery
.on
方法。它的工作方式是检查整个文档,并将
.mask
应用于您的输入,包括动态加载的输入

在您的情况下,我们只需要在您单击或聚焦元素时调用掩码

$(document).on("focus", ".currencyMask", function() {
  $(this).mask("###0.00", {
    reverse: true
  });
});

$(document).on("focus", ".numbersMask", function() {
  $(this).mask("#", {
    reverse: true
  });
});