и не будет видеть. в контесте CheckField this = новый обьект, а не на f. А в контексте onsubmit, this=f
http://javascript.ru/tutorial/object
подробно по твоей части
http://javascript.ru/tutorial/object/thiskeyword
function CheckField(f) {
f.noCheck = new Array();
f.inputs = f.getElementsByTagName('input');
f.textareas = f.getElementsByTagName('textarea');
f.isCheck = function(elem) {
if(elem.indexOf('check') != -1) return true;
return false;
}
f.check = function() {
if(noCheck.length > 0) {
notice(noCheck, '#b6b6b6');
noCheck.length = 0;
}
if(inputs.length > 0) {
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].getAttribute('type') == 'text' && isCheck(inputs[i].id)) {
if(inputs[i].value == '') noCheck.push(inputs[i].id);
}
}
}
if(textareas.length > 0) {
for(var i = 0; i < textareas.length; i++) {
if(isCheck(textareas[i].id)) {
if(textareas[i].value == '') noCheck.push(textareas[i].id);
}
}
}
if(noCheck.length == 0) return true;
else {
notice(noCheck, 'red');
return false;
}
}
this.notice = function(f, c) {
for(var i in f) {
document.getElementById(f[i].substr(0, f[i].indexOf('_'))+'_caption').style.color = c;
document.getElementById(f[i]).style.border = '1px solid '+c;
}
}
f.onsubmit = function() {return this.check();}
}
var cf = new CheckField(document.forms[0]);
правда не помню сработает такое в контексте check() this=f, схавает это браузер?