本来习惯用.net的控件拖拖拖的,最近发现js也很灵活,于是就向js靠拢,可是,期间心酸经历呀,一把鼻涕一把泪的……
一、JS动态生成radio
思路太清晰不过了,无非链接数据库,来个从头到尾加加加。
.net 中有radiolist,如果直接用js生成的话,如何也有这种radiolist的效果呢?什么?你已经知道了,只要将这些radio的name设成同一值就可以了~好吧你对了~
下面先来个万能的函数:
//向页面添加表单元素
// mParent 要添加的表单元素的父元素的ID值
// mType 要添加的表单元素的类型["text","password","radio","checkbox","hidden","button","reset","submit"]
// mID 要添加的表单元素的ID
// mClassName 要添加的表单元素的class
// mName 要添加的表单元素的name
// mText 要添加的表单元素为["radio","checkbox"]时的文本
//mValue 要添加的表单元素的value
function CreateFormUtil(mParent,mType,mID,mClassName,mName,mText,mValue)
{
var parentTemp=document.getElementById(mParent)
var inputTemp=document.createElement("input")
inputTemp.type=mType
if(mID!=""){inputTemp.id=mID}
if(mClassName!=""){inputTemp.className=mClassName}
if(mName!=""){inputTemp.name=mName}
if(mValue!=""){inputTemp.value=mValue}
//inputTemp.οnclick=radTranferTypes(i)(此为函数); //①
inputTemp.οnclick=function clk(){return radTranferTypes(i)}; //②
//inputTemp.setAttribute("checked","checked"); //①
parentTemp.appendChild(inputTemp)//向父元素中插入表单项
inputTemp.setAttribute("checked","checked"); //②
if(mText!="")
{
var txtTemp=document.createTextNode(mText)
parentTemp.appendChild(txtTemp)
}
var br=document.createElement("br")
parentTemp.appendChild(br)
}
解释一:已经顺利的从数据库中生成了,radio了,而且还是radiolist的形式。可是我想让他竖排怎么办?
如果直接用html编写的话,我会很不犹豫的用<br>来让他换行。可是这里该怎么给他加上<br>呢?
那动态创建个<br>吧。(见绿字部分)
解释二:我想让生成的radio默认被选中怎么办?
加上红色的①(在将元素添加前),为什么不好用呢?苍天呀,大地呀~~
解决方法:红色②(在将元素添加后),oh,yeah!!成功了,先别高兴?有区别么?有区别么?什么!?IE显示的时候只对状态改变比较敏感?晕
解释三:如果想给他加个click事件呢。
紫色①甚么反应也没有,老大,别玩我了成不。为什么加不上onclick事件呀。J
紫色②这个…这个…有区别么??为什么你就好用~