JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<body>
<p>When you submit the form, a function is triggered which alerts some text.</p>
<form action="demo_form.asp">
Enter name: <input class='required' type="text" name="properties[color]">
<input type="submit" value="Submit">
</form>
</body>
CSS
input.error, select.error, textarea.error {
border-color: red;
}
JavaScript
$(function(){
$('form').on('submit',function() {
var formIsValid = true;
var message = "Please fill this out and you will be able to add the item to your cart.";
$(this).find('[name^="properties"]').filter('.required, [required="required"]').each(function() { // Filter appears to be wrong here. Since you are going with manual form validation, use class="required" instead of attribute "required" in form HTML
$(this).removeClass('error');
if (formIsValid && $(this).val() == '') {
formIsValid = false;
message = $(this).attr('data-error') || message;
$(this).addClass('error');
}
});
if (!formIsValid) alert(message)
return formIsValid
}).find('input, select, textarea').focus(function() {
$(this).removeClass('error');
});
})