js 判断 选择合适的 Radio
本来觉得要做这个很麻烦 几天没有思路去碰 今天终于想到了......直接解决
页面截图:
页面设计代码:
<div class="Pay02"> <div class="Pay03"> <div class="Pay04">月<img src="images/bg_blank04.gif" />付:</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="押一付一"/></div><div class="Pay06">押一付一</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="押一付二"/></div><div class="Pay06">押一付二</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="押一付三"/></div><div class="Pay06">押一付三</div> </div> <div class="Pay03"> <div class="Pay04">季<img src="images/bg_blank04.gif" />付:</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="无押付三"/></div><div class="Pay06">无押付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="押一付三"/></div><div class="Pay06">押一付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="押二付三"/></div><div class="Pay06">押二付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="押三付三"/></div><div class="Pay06">押三付三</div> </div> <div class="Pay03"> <div class="Pay04">半年付:</div> <div class="Pay05"><input name="rent" type="radio" id="3" onclick="PtypeChecked()" value="无押付半年"/></div><div class="Pay06">无押付半年</div> <div class="Pay05"><input name="rent" type="radio" id="3" onclick="PtypeChecked()" value="押一付半年"/></div><div class="Pay06">押一付半年</div> <div class="Pay05"><input name="rent" type="radio" id="3" onclick="PtypeChecked()" value="押三付半年"/></div><div class="Pay06">押三付半年</div> </div> <div class="Pay03"> <div class="Pay04">年<img src="images/bg_blank04.gif" />付:</div> <div class="Pay05"><input name="rent" type="radio" id="4" onclick="PtypeChecked()" value="无押年付"/></div><div class="Pay06">无押年付</div> <div class="Pay05"><input name="rent" type="radio" id="4" onclick="PtypeChecked()" value="押一年付"/></div><div class="Pay06">押一年付</div> <div class="Pay05"><input name="rent" type="radio" id="4" onclick="PtypeChecked()" value="押二年付"/></div><div class="Pay06">押二年付</div> </div> <div class="Pay03"> <div class="Pay04">其<img src="images/bg_blank04.gif" />他:</div> <div class="Pay05"><input name="rent" type="radio" id="5" onclick="PtypeChecked()" value="面议"/></div><div class="Pay06">面议</div> <input id="hide2" type="hidden" runat="server" value="0" /> </div> </div>
也不知道别人做的话会不会用服务器控件的RadioButtonList 感觉那个不好用 至少用在这里不合适 最主要是布局 多个RadioButtonList 的话就要判断 选择了一个true 其他的就要自动选择false 还不如用raido 设置一样的name 同类的设置相同的id 虽然一个id一个页面中只能出现一次但是我这样用确实解决了问题 而且没有出现错误 反正先用着吧
数据库存入的图:
发布页面是用js代码如下:
function PtypeChecked() { var hides=document.getElementById("hide2"); switch(event.srcElement.id) { case "1": hides.value="月付--:"+ event.srcElement.value; break; case "2": hides.value="季付--:"+ event.srcElement.value; break; case "3": hides.value="半年付--:"+event.srcElement.value; break; case "4": hides.value="年付--"+event.srcElement.value; break; case "5": hides.value=event.srcElement.value; break; } }
存hides的值入数据库
从数据库里读出的时候 判断文字 然后将对应的radio选中 js代码如下:
<script language="javascript" type="text/javascript"> var payType="<%=PayType%>";//数据库中读出的数据 var Rb=document.getElementsByTagName("INPUT") function GetType() { if(payType.indexOf("面")>=0) { document.getElementById("5").checked=true; } else { for(var i=0;i<Rb.length;i++) { if(payType.indexOf(Rb[i].value)>=0)//比对radio的值和数据库里读出的数据 { Rb[i].checked=true; } } } } </script>
思路:获取页面所有的radio 比对radio的值和数据库里读出的数据 如果有对应的 就选择该项 完成!!!
突然发现有问题 月付 季付的radio会有一样的value 于是继续修改
直接改value:
<div class="Pay03"> <div class="Pay04">月<img src="images/bg_blank04.gif" />付:</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="月付--押一付一"/></div><div class="Pay06">押一付一</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="月付--押一付二"/></div><div class="Pay06">押一付二</div> <div class="Pay05"><input name="rent" type="radio" id="1" onclick="PtypeChecked()" value="月付--押一付三"/></div><div class="Pay06">押一付三</div> </div> <div class="Pay03"> <div class="Pay04">季<img src="images/bg_blank04.gif" />付:</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="季付--无押付三"/></div><div class="Pay06">无押付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="季付--押一付三"/></div><div class="Pay06">押一付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="季付--押二付三"/></div><div class="Pay06">押二付三</div> <div class="Pay05"><input name="rent" type="radio" id="2" onclick="PtypeChecked()" value="季付--押三付三"/></div><div class="Pay06">押三付三</div> </div>
js也修改:
function PtypeChecked() { var hides=document.getElementById("hide2"); hides.value=event.srcElement.value; } <script language="javascript" type="text/javascript"> var payType="<%=PayType%>"; var Rb=document.getElementsByTagName("INPUT") function GetType() { if(payType.indexOf("面")>=0) { document.getElementById("5").checked=true; } else { for(var i=0;i<Rb.length;i++) { if(payType==Rb[i].value) { Rb[i].checked=true; } } } } </script>
这下真是彻底了 就是不知道这个value改成这么长一串会不会有问题