`
yujia123
  • 浏览: 33490 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js 将checkbox, radio, select控件设置为只读不可选

阅读更多

1 <script   language=javascript>   
function   dis()   
{   
        var   a   =   document.getElementsByTagName_r("input");   
        for   (var   i=0;   i<a.length;   i++)   
        {   
              if   (a[i].type=="checkbox"   ||   a[i].type=="radio")   a[i].disabled=true;   
        }   
        var   b   =   document.getElementsByTagName_r("select");   
        for   (var   i=0;   i<b.length;   i++)   
        {   
              b[i].disabled=true;   
        }   
}   
</script>   
<input   type=button   value="失效"   onclick=dis()>

注:失效的checkbox,radio等提交后得到的是空值,不管是否选择了

2 <select     onchange="selectedIndex=2">   
<option   value=1>1</option>   
<option   value=2>2</option>   
<option   value=3   selected>3</option>   
<option   value=4>4</option>   
</select>   
<input   type=checkbox   checked   onclick="checked=defaultChecked">   
<input   type=radio   onclick="checked=defaultChecked">

22<input   type="radio" name="ss" checked onclick="checked=defaultChecked">
<input   type="radio" name="ss" onclick="document.forms[0].ss[0].checked=true">
<input   type="radio" name="ss" onclick="document.forms[0].ss[0].checked=true">
   


3 如何将JSP中RadioBox设为不可选状态,并且不变灰
关键字: radiobox不可选并且不变灰 
试过了onchange,onclick事件都不好使。(不用 disabled="true"的情况下) 
比如:onclick="JavaScrirpt: return false;" 
结果是确实不可以重新选中一组RadioBox中的其它 单选钮,但是页面加载时的初始选中的 单选钮 会被置为未选状态(只要你点击了其它radiobox)。 
onchange="JavaScript:if(this.checked) {this.checked = false;} else{this.checked = true;}" 也有问题,不好解决。 
而加一种方法是用 disabled="true" 后再更改 radiobox的CSS样式。 
可结果我发现只能改变 背景 没办法改变 前景色(即radiobox始终是灰的。)

这种问题当然我要是用大段的逻辑代码来控制当然是可以实现的,但我不愿那样做,太没必要了。 
请高手们指点呀。 
//****************************************************************************************** 
<script language="javascript"> 
function resumeRadio(radioId, radioName, hidId) { 
var radioObj = document.getElementByIdx_x(radioId); 
radioObj.checked = !radioObj.checked; 
var radioObjGroup = document.forms[0].elements(radioName); 
var groupIdx = document.getElementByIdx_x(hidId).value; 
if (groupIdx.length > 0) { 
radioObjGroup[parseInt(groupIdx)].checked = true; 
} 
} 
</script>

<input type="hidden" name="familyTypeIndex" id="familyTypeIndex" value="" /> 
<logic:iterate id="familytyps" name="FamilyForm" property="diagnosisUnitOptions" indexId="index"> 
<bean:define id="codeValue"> 
<bean:write name="familytyps" property="code" /> 
</bean:define> 
<logic:equal name='FamilyForm' property='familyBasics.familyType' value='<%= (String)pageContext.getAttribute("codeValue") %>'> 
<script language="JavaScript"> 
document.getElementByIdx_x("familyTypeIndex").value = "<%= index %>"; 
</script> 
</logic:equal> 
<html:radio property='familyBasics.familyType' styleId='radioFamilyType<%= index %>' value='<%= (String)pageContext.getAttribute("codeValue") %>' onclick='resumeRadio(this.id,this.name,"familyTypeIndex")'/> 
<bean:write name="familytyps" property="codeName" /> 
</logic:iterate>

都弄成这样了,还是不行。 
老说这里有语法错误,我真的郁闷
onclick='resumeRadio(this.id,this.name,"familyTypeIndex")' 
我把this.id,this.name换成相应的 字符串形式也不行。 
//****************************************************************************************** 
奶奶地,终于好了。 
注意这句的写法 
<html:radio property='familyBasics.familyType' value='<%= (String)pageContext.getAttribute("codeValue") %>' onclick="resumeRadio(this.id,this.name,'familyTypeIndex')" styleId='<%= "radioFamilyType" + index %>' /> 
这里面的'familyTypeIndex'一定要用单引号包围。 
resumeRadio(this.id,this.name,'familyTypeIndex')

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics