// SharePoint specific "PreSaveAction" function
function PreSaveAction() {
// сохранить как шаблон
// SaveAsTemplate_949c73f0-a851-4c62-9e2f-82570991374b_$RadioButtonChoiceField0
var result = true;
$("input[id^='SaveAsTemplate0_']").each(function( index ) {
console.log( index + ": " + $( this ).val() + $(this).is(':checked'));
if( $ (this).val() == 'Да' && $(this).is(':checked') ) {
// проверяем что бы был указан файл
// TemplateName_0e05ec59-36b2-4b6f-a98e-97017d51ab87_$TextField
var template = $("input[id^='TemplateName0_']").val();
if(template == ''){
$("input[id^='TemplateName0_']").parent().append("<span class='ms-formvalidation ms-csrformvalidation'>Укажите имя шаблона</span>");
$("input[id^='TemplateName0_']").focus();
result = false;
return false;
}
var regex = /([a-zA-Z0-9-_])*\.json$/g;
var found = template.match(regex);
console.log(found)
if(found && found.length == 1){
}
else{
$("input[id^='TemplateName0_']").parent().append("<span class='ms-formvalidation ms-csrformvalidation'>Имя файла может состоять из букв английского алфавита и заканчиваться .json. Например Test-01_02.json</span>");
$("input[id^='TemplateName0_']").focus();
result = false;
return false;
}
}
});
return result;
}
PreSaveAction
только один возврат - который в конце. А вот в функции-итераторе ... .each(function( index ) {
, возврат - это просто выход из этой функции, а не из внешней, при этом цикл продолжит работу. Если надо выйти из функции PreSaveAction
в цикле - то и используйте цикл, а не отдельный итератор с функцией.