Моим лучшим предположением было бы сначала иметь функцию, которая использует jQuery для поиска браузера и версии, и сопоставить ее с тем, поддерживает ли она шаблон или нет, а затем сделать что-то вроде
$("#element").onChange(function()
{
if(doesNotSupportPattern())
{
var pattern = $(this).prop('pattern');
if(!$(this).val().match(pattern)))
{
//Code to make form invalid
}
}
});
или что-то в этом роде
Смена плана, это не тот путь
$("#form").submit(function()
{
var valid = true;
$(this).find('input').each(function()
{
if(!$(this).prop('pattern'))
continue;
if(!$(this).val().match($(this).prop('pattern')))
valid = false;
});
if(!valid)
{
//invalidate form
}
});
Будет лучше. Таким образом, он будет запускаться для каждого элемента, и он более компактен, и, если шаблон включен, он не будет вмешиваться в любом случае, так как он должен отправлять, только если все совпадают, а если нет, форма в любом случае становится недействительной