📄 fastjsp.js
字号:
var FastJsp = new Object();
FastJsp.default_invalid_field_handler = function(event, field, message){
if (!event.abort && !field.disabled) {
FastJsp.set_focus(field);
window.alert(message);
event.abort = true;
event.cancel_handlers = true;
}
}
function FormEventManager(form){
this.form = form;
this.handlers = {};
form.onsubmit = function() { return this.events.submit(); };
form.onreset = function() { return this.events.reset(); };
this.invalid_field_handler = FastJsp.default_invalid_field_handler;
}
FastJsp.find = function(formName){
return eval("document."+formName);
}
FastJsp.findField = function(formName,fieldName){
return eval("document."+formName+"."+fieldName);
}
FastJsp.register_form = function(formName){
var form = this.find(formName);
form.events = new FormEventManager(form);
}
FastJsp.onpresubmit = function(formName, handler){
var form = this.find(formName);
form.events.add_presubmit_handler(handler);
}
FastJsp.onsubmit = function(formName, handler){
var form = this.find(formName);
form.events.add_submit_handler(handler);
}
FastJsp.onpostsubmit = function(formName, handler){
var form = this.find(formName);
form.events.add_postsubmit_handler(handler);
}
FastJsp.onreset = function(formName, handler){
var form = this.find(formName);
form.events.add_reset_handler(handler);
}
FastJsp.oncancel = function(formName, handler){
var form = this.find(formName);
form.events.add_cancel_handler(handler);
}
FastJsp.set_focus = function (field){
if (field.focus)
try{field.focus();}catch(ex){}
}
FastJsp.dofocus = function (formName,fieldName){
this.set_focus(this.findField(formName,fieldName));
}
FastJsp.trim_value = function(fieldValue){
return fieldValue.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
function FormSubmitEvent(form, type, invalid_field_handler){
this.form = form;
this.type = type;
this.abort = false;
this.cancel_handlers = false;
this.invalid_field_handler = invalid_field_handler;
}
FormSubmitEvent.prototype.invalid_field = function(field, message){
this.invalid_field_handler.call(window, this, field, message);
}
FormSubmitEvent.prototype.toString = function(){
return "FormSubmitEvent[" + this.form.name + " " + this.type + " " + this.abort + "]";
}
FormEventManager.prototype.add_handler = function(type, handler){
var array = this.handlers[type];
if (array == null) {
array = [];
this.handlers[type] = array;
}
array.push(handler);
}
FormEventManager.prototype.invoke_handlers = function(type, eventObj){
if (eventObj.cancel_handlers)
return;
var array = this.handlers[type];
if (array == null) return;
var length = array.length;
for (var i = 0; i < length; i++)
{
var handler = array[i];
handler.call(window, eventObj);
if (eventObj.cancel_handlers) return;
}
}
FormEventManager.prototype.addCancelListener= function(handler){
this.add_handler("cancel", handler);
}
FormEventManager.prototype.cancel = function(){
var event = new FormSubmitEvent(this.form, "cancel", this.invalid_field_handler);
this.invoke_handlers("cancel", event);
if (event.abort == false) {
this.form.form.value =this.form.form.value+"$$cancel";
this.form.onsubmit = null;
this.form.submit();
}
}
FormEventManager.prototype.add_presubmit_handler = function(handler){
this.add_handler("presubmit", handler);
}
FormEventManager.prototype.add_submit_handler = function(handler){
this.add_handler("submit", handler);
}
FormEventManager.prototype.add_postsubmit_handler = function(handler){
this.add_handler("postsubmit", handler);
}
FormEventManager.prototype.submit = function(){
var event = new FormSubmitEvent(this.form, "submit", this.invalid_field_handler);
this.invoke_handlers("presubmit", event);
this.invoke_handlers("submit", event);
this.invoke_handlers("postsubmit", event);
if (event.abort)
return false;
return true;
}
FormEventManager.prototype.add_reset_handler = function(handler){
this.add_handler("reset", handler);
}
FormEventManager.prototype.reset = function(){
var event = new FormSubmitEvent(this.form, "reset", this.invalid_field_handler);
this.invoke_handlers("reset", event);
return ! event.abort;
}
FastJsp.required_field = function(event, formName,fieldName, message){
var field = this.findField(formName,fieldName);
if (field.value.length == 0)
event.invalid_field(field, message);
}
FastJsp.validate_min_length = function(event, formName,fieldName, min, message){
var field = this.findField(formName,fieldName);
if (field.value == "") return;
if (field.value.length < min)
event.invalid_field(field, message)
}
FastJsp.validate_max_length = function(event, formName,fieldName, max, message){
var field = this.findField(formName,fieldName);
if (field.value == "") return;
if (field.value.length > max)
event.invalid_field(field, message)
}
FastJsp.validate_min_number = function(event, formName,fieldName, min, message){
var field = this.findField(formName,fieldName);
var value = field.value;
if (value == "") return;
if (Number(value) < min)
event.invalid_field(field, message)
}
FastJsp.validate_max_number = function(event, formName,fieldName, max, message){
var field = this.findField(formName,fieldName);
var value = field.value;
if (value == "") return;
if (Number(value) > max)
event.invalid_field(field, message)
}
FastJsp.validate_email = function(event, formName,fieldName, pattern, message){
var field = this.findField(formName,fieldName);
var value = field.value;
if (value == "") return;
var regexp = new RegExp(pattern)
if (!regexp.test(value))
event.invalid_field(field, message)
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -