JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.min.js"></script>
<form>
<div>Name:
<p>
<input name="name_ct[]" id="id_ct0" type="text" class="form-control" placeholder="Add Variant 1 Name">
</p>
</div>
<input type="button" value="Add Variant" />
<input type="submit" />
</form>
CSS
.error {
color: red;
}
JavaScript
$(document).ready(function () {
$.validator.addMethod("mytst", function (value, element) {
var flag = true;
$("[name^=name_ct]").each(function (i, j) {
$(this).parent('p').find('label.error').remove();
$(this).parent('p').find('label.error').remove();
if ($.trim($(this).val()) == '') {
flag = false;
$(this).parent('p').append('<label id="id_ct'+i+'-error" class="error">This field is required.</label>');
}
});
return flag;
}, "");
$("form").validate({
ignore: '',
rules: {
"name_ct[]": {
mytst:true
}
},
submitHandler: function () {
//you can add code here to recombine the variants into one value if you like, before doing a $.post
form.submit();
alert('successful submit');
return false;
}
});
var j = 1;
$('input[type="button"]').click(function () {
$('form div').append('<p><input name="name_ct[]" id="id_ct' + j + '" type="text" class="form-control" placeholder="Add Variant ' + j + ' Name " ></p>');
j++;
});
});