首页 > 解决方案 > 验证动态输入字段 Jquery

问题描述

我正在向 Web 表单添加动态输入字段。我正在使用这个Jquery Mask插件验证这些。

它适用于初始输入,但不适用于动态添加的输入。

我的输入 HTML 是;

<input type="text" id="mac_address" name="MacAddress[]">

我的按钮 HTML 是;

<button class="add-mac" type="button" title="Add">Add</button>

用于验证输入的语法是(仅适用于第一个输入);

$('#mac_address').mask('ZZ-ZZ-ZZ-ZZ-ZZ-ZZ', {
    translation: {
        'Z': {
            pattern: /[A-Fa-f0-9]/,
            optional: false,
        }
    }
});

如何将此验证添加到动态输入?

我尝试将代码添加到each循环中,尽管它不起作用。

$('.add-mac').click(function() {
    $('#mac_address').each(function() {
        $(this).mask('ZZ-ZZ-ZZ-ZZ-ZZ-ZZ', {
            translation: {
                'Z': {
                    pattern: /[A-Fa-f0-9]/,
                    optional: false,
                }
            }
        });
    });
});

任何建议表示赞赏。

标签: javascriptjqueryhtml

解决方案


为输入添加了类

  <input type="text" class="mac_address" id="mac_address" name="MacAddress[]">
    <button class="add-mac" type="button" title="Add">Add</button>

    <script>
    var count = 1;
    $('.add-mac').click(function() {

     $('.mac_address').last().clone().attr('id', 'mac_address' + count).val('').insertBefore($(this));
    count ++; 
    });
    $(document).on('keyup', '.mac_address', function(){
      $('.mac_address').mask('ZZ-ZZ-ZZ-ZZ-ZZ-ZZ', {
        translation: {
            'Z': {
                pattern: /[A-Fa-f0-9]/,
                optional: false,
            }
        }
    });
    })
      $('.mac_address').mask('ZZ-ZZ-ZZ-ZZ-ZZ-ZZ', {
        translation: {
            'Z': {
                pattern: /[A-Fa-f0-9]/,
                optional: false,
            }
        }
    }); 
</script>

https://codepen.io/vommbat/pen/MBXeoj


推荐阅读