От известно време ми се налага да използвам Confirmit - специфичен софтуер за създаване на уеб базирани анкети. Ето една удобна функцийка за валидация на 3D Grid с няколко Multi въпроса в него, като с последният параметър се указва дали последното поле да е изключително:
function validate3d(qid,col,excl)
{
var codes = f(qid+'x'+col).domainValues();
var s = new Set();
for (var i=1;i<=(col-1);i++) s=s.union(f(qid+'x'+i));
if(excl == 1){
if(s.isect(f(qid+'x'+col)).size() > 0) {
RaiseError();
SetQuestionErrorMessage(CurrentLang(), "Не е позволено да маркирате "+f(qid+'x'+col).text()+" заедно с други опции.");
}}
s = s.union( f(qid+'x'+col) );
if(s.size() != codes.length) {
RaiseError();
SetQuestionErrorMessage(CurrentLang(), "Моля изберете поне един отговор на ред.");
}
}
Както се вижда има три параметъра - ID на 3D Grid-а, за който се отнася, брой на колоните и дали последната ще е изключителна или не (1/0).