返回   CHF站长论坛 > 综合讨论区 > 网站开发与设计

网站开发与设计 网页设计、网站开发、网站维护与调试交流区。

魔兽世界私服 奇迹私服 双至强仅二千,企商在线,最早租用商 亿恩1元帮您升级服务器! 江民杀毒软件2008年推广计划
传奇世界私服 传世私服 传奇私服 明网Linux合租空间,独立IP 全球最新的创意科技产品 魔域私服 传奇私服 魔域私服 完美世界私服
发表新主题 回复
 
主题工具 主题评分 显示模式
旧 2006-09-06, 09:15   #1 (页面定位)
周董
 
周董 的头像
 
注册日期: 2006-08-30
住址: CH潜水区
帖子: 1788
周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀周董 有着人尽皆知的贡献和荣耀
默认 Formset表单设置函数库

Formset表单设置函数库

一、从基本说起
B/S开发,最基础的人机交互是什么?数据来自哪里?(产生的和输入的[废话...此处省略N万字....])。是表单。常规的软件都必不可少的过程是 用户输入--》处理--》存储--》读取修改。数据存在数据库里木用,要动起来,就要交互。于是..........

二、过程

1.用户输入
通过以下几种表单元素,展示给用户,通过输入、点击、拖曳等形式操作,然后获取用户的动作。
文本框、多行文本域、下拉菜单、单选按钮、复选按钮、隐藏域。

2.处理存储

3.读取修改
把现有的数据读出来,再以表单形式展示。恰恰是这一步,让程序员头疼,明明和添加过程相似,还要机械性的写一遍,简直是浪费人力。根据不同的表单元素,还要损耗脑细胞啊。

文本框:以 value = 形式设值
多行文本:在textarea之间输出值
下拉菜单:这个怎么办?获取值,用编程判断选项的值,在值符合的一项,多输出一个selected,要重新输出一次菜单。
单选按钮:这个呢?判断符合的值,输出checked。
复选按钮:判断是否空值,然后决定是否checked。
要调用页面元素:document.getElementById ,汗偶英文不好,总记不住这长的一串单词。。。。
还有些元素属性的设置,元素的隐藏与显示。。。。。。

明明是很简单的问题,非要用编程实现,有时间容许这样挥霍么?

三、解决方法
现在你不必要编程来解决很白痴又浪费时间的问题了,之需要引用一个js,读取值输出就可了。

Formset.js


CODE:[Copy to clipboard]var Radiov = 'null';
var Rarray = 'null';
var EType;
//DreamEcm Formset
//Date: Jul 13, 2006
//Copyright: DreamSoft Co.,Ltd.
//Mail: Dream@Dreamsoft.Ca
//Author: Egmax
/***
Input('Element_id','value');
***/
function Input(Eid, v)
{
$(Eid).value = v;
}

/***
Select('Element_id','value');
***/
function Select(Eid,v)
{
var _obj = $(Eid);
for(var i=0; i<_obj.options.length; i++)
if(_obj.options[i].value == v) { _obj.selectedIndex = i; break; }
}

/***
Checkbox('Element_id','value');
***/
function Checkbox(Eid,v)
{
if(v != 0) $(Eid).click();
}

/***
Radio('Element_name', 'value');
***/
function Radio(Ename, Evalue)
{
if(typeof(Radiov) == 'string') Rarray = _GetRadio();
if(typeof(Rarray) == 'string') return false;
for (var i=0; i<Rarray.length; i++){
if (Rarray[i].name == Ename && Rarray[i].value == Evalue) { Rarray[i].click(); break; }
}
}

/***
Set(Fid, v);
***/
function Set(Fid, v)
{
EType = $(Fid).type;
switch(EType) {
case 'text' : Input(Fid, v); break;
case 'select-one' : Select(Fid, v); break;
case 'checkbox' : Checkbox(Fid, v); break;
case 'hidden' : Input(Fid, v); break;
case 'radio' : Radio(Fid, v); break;
case 'textarea' : Input(Fid, v); break;
default : return false;
}
}

/***
$('Element_id','Element_id',..........);
return : obj array
***/
function Submit(Fname)
{
document.forms[Fname].submit();
}

/***
Dis('Element_id','Element_id',..........);
***/
function Dis(Eid)
{
if(arguments.length == 1) { $(Eid).disabled = true; return; }
var i;
for (i=0; i<arguments.length; i++)
if(typeof(arguments[i]) == 'string') $(arguments[i]).disabled = true;
}

/***
$('Element_id','Element_id',..........);
return : obj array
***/
function $(EId)
{
if(arguments.length == 1) return document.getElementById(EId);
var i,Es = new Array();
for (i=0; i<arguments.length; i++)
if(typeof(arguments[i]) == 'string') Es.push(document.getElementById(arguments[i]));
return Es;
}

/***
_GetRadio();
return : obj array
***/
function _GetRadio()
{
var _input = document.getElementsByTagName('input');
if(_input.length < 1) return 'null';
var i,Is = new Array();
for (i=0; i<_input.length; i++) if(_input[i].type=="radio") Is.push(_input[i]);
Radiov = Is;
return Is;
}
示例:


CODE:[Copy to clipboard]<script src='Formset.js'></script>

Input演示:<input id='t_input' name='test'>
<br>Input('t_input','123456');
<br><br>

Select演示:
<select id='t_select' name='t_select'>
<option value='aa'>aa001</option>
<option value='bb'>bb002</option>
<option value='cc'>cc003</option>
<option value='dd'>dd004</option>
</select>
<br>Select('t_select','cc');
<br><br>

Checkbox演示:
<input type='checkbox' id='t_box' value=0>已经阅读
<br>Checkbox('t_box', 1);
<br><br>

Radio演示:
<input type='radio' id='t_radio1' name='f_radio' value='aaa'>R1
<input type='radio' id='t_radio2' name='f_radio' value='bbb'>R2
<input type='radio' id='t_radio1' name='f_radio2' value='caaa'>R1
<input type='radio' id='t_radio2' name='f_radio2' value='cbbb'>R2
<br>Radio('f_radio', 'bbb');
<br><br>

Dis演示:<br>
Dis('t_input','t_select','t_box','t_radio1');
<br><br>
Submit演示:<br>
Submit('tf');

<textarea id='t_textarea' name='f_radio'></textarea>

<form action='0' name='tf' target='_blank'></form>

<script>
Set('t_input','123456'); //这个是设置input的值
Set('t_select','cc'); //这个是设置select的值
Set('t_box', 1); //这个是设置checkbox的值
Set('f_radio', 'bbb'); //这个是设置radio的值
Set('f_radio2', 'cbbb');
Set('t_textarea', 'cbbb'); //这个是设置textarea的值
Dis('t_input','t_select','t_box','t_radio1'); //这个是禁用某个元素,可以设置一个或多个参数
Submit('tf'); //这个是提交name为tf的表单
</script>
无论是文本框还是下拉菜单,现在你只需要调用 Set(元素id,元素的值);
如果需要获取页面的元素,只需要 $('元素id') 就可取得元素,效果同 document.getElementById ,要取得多个元素,则设置多个参数。


四、结束
总之搞程序,就要学会偷懒,尽量一劳永逸。。。。。


来也匆匆,去也匆匆
周董 当前离线   回复时引用此帖
旧 2006-09-08, 00:18   #2 (页面定位)
广告工具下载
 
注册日期: 2006-09-07
帖子: 26
广告工具下载 是普普通通的会员
默认

不错的贴,太喜欢了,大家都顶啊


论坛自动发贴机 自动发贴软件 论坛发贴工具 网站推广软件 论坛群发软件 论坛群发器联系qq:525093551
网络生意经
广告工具下载 当前离线   回复时引用此帖
旧 2006-09-08, 08:17   #3 (页面定位)
自动帮顶帖子
 
注册日期: 2006-09-08
帖子: 16
自动帮顶帖子 是普普通通的会员
默认

不错。值得学习啊,顶一个


论坛自动发贴机 自动发贴软件 论坛发贴工具 网站推广软件 论坛群发软件 论坛群发器联系qq:525093551
网络生意经
自动帮顶帖子 当前离线   回复时引用此帖
旧 2006-09-08, 22:19   #4 (页面定位)
群发广告方法
 
注册日期: 2006-09-08
帖子: 15
群发广告方法 是普普通通的会员
默认

好贴子哦,大家不顶说不过去


论坛自动发贴机 自动发贴软件 论坛发贴工具 网站推广软件 论坛群发软件 论坛群发器联系qq:525093551
网络生意经
群发广告方法 当前离线   回复时引用此帖
回复

书签

标签

主题工具
显示模式 对此主题评分
对此主题评分:



所有时间均为北京时间。现在的时间是 15:51