var input = inputs[i]; if ((typeName && input.type != typeName) || (name && input.name != name)) continue; matchingInputs.push(input); }
return matchingInputs; },
/** * 将指定表单的元素置于不可用状态 */ disable: function(form) { var elements = Form.getElements(form); for (var i = 0; i < elements.length; i++) { var element = elements[i]; element.blur(); element.disabled = 'true'; } },
enable: function(form) { var elements = Form.getElements(form); for (var i = 0; i < elements.length; i++) { var element = elements[i]; element.disabled = ''; } },
findFirstElement: function(form) { return Form.getElements(form).find(function(element) { return element.type != 'hidden' && !element.disabled && ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); }); },
/** * 使表单的第一个非 hidden 类型而且处于可用状态的元素获得焦点 */ focusFirstElement: function(form) { Field.activate(Form.findFirstElement(form)); },
/* * 重置表单 */ reset: function(form) { $(form).reset(); } }
/** * 表单元素工具类 */ Form.Element = { /** * 返回表单元素的值先序列化再进行 URL 编码后的值 */ serialize: function(element) { element = $(element); var method = element.tagName.toLowerCase(); var parameter = Form.Element.Serializers[method](element);
if (parameter) { var key = encodeURIComponent(parameter[0]); if (key.length == 0) return;
if (parameter[1].constructor != Array) parameter[1] = [parameter[1]];
return parameter[1].map(function(value) { return key + '=' + encodeURIComponent(value); }).join('&'); } },
/** * 返回表单元素序列化后的值 */ getValue: function(element) { element = $(element); var method = element.tagName.toLowerCase(); var parameter = Form.Element.Serializers[method](element); |