<logic:present name="nameMap" scope="request">
 <logic:iterate id="name" name="nameMap" scope="request" indexId="id">
   <bean:define id="key" name="name" property="key" type="java.lang.Long"/> 
    <logic:equal name="id" value="3">
     <html:radio property="person.name" value="<%=String.valueOf(key)%>" styleClass="Radio" onclick="hideMC(1)"/>
     <bean:write name="name" property="value"/>&nbsp; 
     <html:text property="person.name" styleClass="Input"  size="20" maxlength="200" /><br /> 
    </logic:equal>    <logic:notEqual name="id" value="3">
      <html:radio property="pserson.name" value="<%=String.valueOf(key)%>" styleClass="Radio" onclick="hideMC(0)"/>
      <bean:write name="name" property="value"/><br />
   </logic:notEqual>                         
 </logic:iterate>
</logic:present>
js为
function hideMC(value)
{
    if(document.AwGjzForm('person.name').length == 5)
    {
       if(document.AwGjzForm('person.name')[3].checked)
       {
    document.AwGjzForm('person.special').disabled = false;
       }else
       {
  document.AwGjzForm('person.special').value = "";
  document.AwGjzForm('person.special').disabled = true;
       }
    }
}
这个只能实现当选第三个时,就可以对它填写额外内容,但现在要对第一个也做特殊处理,就是选中第一个后,其后面有一个文本域可以填写详细内容,若没选,则不能填,请问我该怎么改啊?望大家多指点啊!

解决方案 »

  1.   

    document.AwGjzForm('person.name')[0].checked == true 表示第一个选中
    你JS中怎么 
    if(document.AwGjzForm('person.name')[3].checked)怎么是3呢
    选第三个应该是[2]才对的啊
      

  2.   

    你这个是对查询列表进行修改,那么当对其结果中的某一条记录做修改时,你必须要标示你修改的是哪个,而对于你控制的那个radio来讲,你页面上所呈现的每个radio的 property值都是一样的,这就使 程序无法判断你到底要改变哪个,其实你的js,程序已经在运行了,只不过是个死循环而已。关键的是将 property的值区分开来,就Ok了
      

  3.   

    你说的跟我好像有差别吧,我其实要实现的效果就是有5个radio选项,你选中其中一个之后,它后面也许有一些附加内容需要你填写,若没选中,则这些不用也不能填写啊,大概就这个效果啊,那位高人有简单例子啊,求一个啦
      

  4.   


    <SCRIPT LANGUAGE="JavaScript">
    function hideMC(value) 
    {
    if(document.AwGjzForm('person.name').length == 5)
    {
    var input = document.AwGjzForm.getElementsByTagName("input")
    for(var i=0;i<input.length ;i++ )
    {
    if(input[i].type=="text" && input[i].name.indexOf("text")>-1)
    {
    if(input[i].name=="text"+value)
    {
    input[i].value = "";
    input[i].disabled = false;
    }
    else
    {
    input[i].value = "";
    input[i].disabled = true;
    }
    }
    }
    }
    }
    </SCRIPT>
    <body>
    <form name=AwGjzForm>
    <INPUT TYPE="radio" NAME="person.name" value="0" onclick="hideMC(0)">
    <INPUT TYPE="text" NAME="text0" disabled><BR>
    <INPUT TYPE="radio" NAME="person.name" value="1" onclick="hideMC(1)">
    <INPUT TYPE="text" NAME="text1" disabled><BR>
    <INPUT TYPE="radio" NAME="person.name" value="2" onclick="hideMC(2)">
    <INPUT TYPE="text" NAME="text2" disabled><BR>
    <INPUT TYPE="radio" NAME="person.name" value="3" onclick="hideMC(3)">
    <INPUT TYPE="text" NAME="text3" disabled><BR>
    <INPUT TYPE="radio" NAME="person.name" value="4" onclick="hideMC(4)">
    <INPUT TYPE="text" NAME="text4" disabled>
    </form>
    </body>反正JS就是差不多这个样子
      

  5.   

    这个样子就可以了,现在主要是我的东西都在
    <logic:iterate id="name" name="nameMap" scope="request" indexId="id"> 
    这个map中,通过它<bean:define id="key" name="djqk" property="key" type="java.lang.Long"/> 
    把哪些value的值取出来然后要赋给input的value中,所以能用我取的这个value去这么做吗?怎么写啊,我的value值从数据库读出来是20060113080119,20060113080120,20060113080121,20060113080122,20060113080123,20060113080124这些东西。<INPUT TYPE="radio" NAME="person.name" value="<%=String.valueOf(key)%>" onclick="hideMC(value)">
    所以要求这些input可以做成动态的吗?怎么做啊,谢谢<INPUT TYPE="text" NAME="<%="text"+key%>" disabled><BR>
      

  6.   

    function getHotelName()
    {
    var radioText=document.getElementsByName("hotelSelect");
    for(var i=0;i<radioText.length;i++)
    {
    if(radioText[i].checked)
    {
    document.getElementById("hidden").value=radioText[i].nextSibling.nodeValue;
    break;  
    }
    }
    }
    function checkRadio(id)
    {
    var hiddenText=document.getElementById("hidden").value;
    if(hiddenText=="")
    {
    alert("请选择单选框");
    return false;
    }
    return true;
    }
      

  7.   

    我的要求现在是总共5个radio,现在要求0和3若选中后,要填写一个附加字段信息,用这个隐藏域可能不行吧,行的话怎麽做啊?
      

  8.   

    function get_value(){
    if(document.getElementsByName)
     {
      var xx = document.getElementsByName('name');
      var checkedOrNot=0;
       document.fm.name.value="";
      for(i=0;i<xx.length;i++)
      {
        if(xx[i].checked)
        {
              if(i==3){
         checkedOrNot=1;
         document.AwGjzForm('person.special').disabled = false;   
            }else{
            return false;
            }    
              if(i==0){
         checkedOrNot=1;
         document.AwGjzForm('person.special').disabled = false;   
            }else{
            return false;
    }    
    }
    }
    大概这么个意思。。
    你在改改
      

  9.   

    9楼好强啊,我都看不懂,给点注释啦,搞了半天知道要做什么了,其实就是5个radio,只要求对0和3进行处理,当选中这两个时,才要求填写附加信息,否则不可填,而其它的则不要求有文本域