我想给单选按钮设默认值,请问js怎么实现?
不要在页面直接给个默认值的那种,是要从数据库中查出后再初始化到页面的

解决方案 »

  1.   

    $(document).ready(function(){
    //------------------------------------------------------------//
    accountManager.searchAclRecForAcc(
           ${CAACLManageForm.accId},
    function(datas){
    for(var i=0,j=datas.length; i < j; i++){
    var modId  = datas[i][0];
    var cState = datas[i][1];
    var rState = datas[i][2];
    var uState = datas[i][3];
    var dState = datas[i][4];
    var extState = datas[i][5];
    $.setInitState(modId,"_C",cState);
    $.setInitState(modId,"_R",rState);
    $.setInitState(modId,"_U",uState);
    $.setInitState(modId,"_D",dState);
    $.setInitState(modId,"_EXT",extState);
    $.setInitState(modId,"_ACC",true);

    }
    }
    );$.extend({
        setInitState:function(modId,suffix,state){ 
          var temp="#"+modId+suffix;      
          $(temp).attr("checked",$.getPerState(state));
      }
     });  

    //------------------------------------------------------------//
    });自己慢慢想,这个使用dwr和jquery组合就行了。
      

  2.   

    楼上的兄弟,dwr会用 但jquery只是 以前了解一点点  但在项目中没具体的用过
    能不能把你上面的代码写些注释了  看不太明白
    昨天我已经用dwr和js实现了:在父页面里用dwr取值过来:
      function getUser(UserId){
    UserManager.getUserById(UserId,function(data){
    var obj = new Array(3);
    obj[0]=data.name;
    obj[1]=data.sex;
    obj[2]=data.age;
              var url="<%=request.getContextPath()%>/modifyUser.jsp";
              var result = window.showModalDialog(url,obj,"dialogWidth=380px;dialogHeight=280px");
              window.location.href=encodeURI(encodeURI("UserAction.do?action=modifyUser&name="+result[1]+"&age="+result[2]+"&sex="+result[0]+"&id="+UserId));然后在子页面:
     function init(){
         var obj = window.dialogArguments;
         document.all.name.value=obj[0];
         document.all.age.value=obj[2];
         flag = document.getElementsByName("sex");
         if(obj[1]=="男"){
            flag[0].checked=true;
         }else{
            flag[1].checked=true;
        }       
      }
    相信你看这个应该比较容易了,但我现在的水平只能这么做了,能不能就你的dwr和jquery组合做一些注释?
    我也很想学jquery了,知道它比较流行,能不能就jquery做一些说明和小例子  怎么用它
    小弟感激不尽!!
      

  3.   


    <html>
    <head>
    <title>初始化单选</title>
    <script>
    function initradio(radioName,radioValue){
    var radioObjects = document.getElementsByName(radioName); for(var i = 0;i < radioObjects.length;i++){
    if(radioObjects[i].value == radioValue){
    radioObjects[i].checked =  'checked';
    }
    }
    }
    </script>
    </head>
    <body>
    <form action="#">
    1<input type="radio" name="testRadio" value="1">
    2<input type="radio" name="testRadio" value="2">
    3<input type="radio" name="testRadio" value="3">
    </form>
    <script>
    initradio('testRadio',2);
    </script>
    </body>
    </html>
      

  4.   

    我画了个简单的页面,基本能实现功能,楼主看看哈
    <%@page pageEncoding="gbk" %>
    <html>
    <head>
    <title>Index</title>
    <script type="text/javascript">
    function initradio(name,value){
    var r1=document.getElementsByName(name);
    for(var i=0;i<r1.length;i++){
    if(r1[i].value==value){
    r1[i].checked=true;
    }
    }
    }
    </script>
    </head>
    <body onload="initradio('r','<%=request.getParameter("value") %>')">
    <center>
    <h1>Index</h1>
    <hr>
    <p>请选择:</p>
    <input type="radio" name="r" value="A">A
    <br>
    <input type="radio" name="r" value="B">B
    <br>
    <input type="radio" name="r" value="C">C
    <br>
    <input type="radio" name="r" value="D">D
    <br>
    </center>
    </body>
    </html>
      

  5.   

    <body onload="initradio('r','<%=request.getParameter("value") %>')">5楼的兄弟,确定能在js中获得value的值吗?
     function initradio(name,value)
      我在js中测试了一下  发现这个value值为空!!
      这样写可以吗??
      

  6.   

    <%@page pageEncoding="gbk" %>
    <html>
        <head>
            <title>Index</title>
            <script type="text/javascript">
                function initradio(name,value){
                    var r1=document.getElementsByName(name);
                    for(var i=0;i<r1.length;i++){
                        if(r1[i].value==value){
                            r1[i].checked=true;
                        }
                    }
                }
            </script>
        </head>
        <body onload="initradio('r','<%=request.getParameter("value") %>')">
            <center>
                <h1>Index</h1>
                <hr>
                <p>请选择:</p>
                <input type="radio" name="r" value="A">A
                <br>
                <input type="radio" name="r" value="B">B
                <br>
                <input type="radio" name="r" value="C">C
                <br>
                <input type="radio" name="r" value="D">D
                <br>
            </center>
        </body>
    </html>
      

  7.   

    你不是说从数据库查询出来吗,当然要在打开页面的时候传一个参数value进来了,在前一个页面将你从数据库查询出的数据保存在request中,我这里只是模拟了一个参数,你打开页面应该这样写http://localhost:8080/index.jsp?value='A'或者http://localhost:8080/index.jsp?value='B'或者http://localhost:8080/index.jsp?value='C'或者http://localhost:8080/index.jsp?value='D'
      

  8.   

    明白你的意思了,但是你这样写不是存在很大的局限性吗?举两个反例吧:
      第一,对记录进行修改时,传个id从数据库中查询出来,用一页面显示这条数据
        比如像这样子传值: window.location.href=encodeURI(encodeURI("UserAction.do?action=deleteUser&id="+UserId));  修改时根本不需要传sex这个值,只要传id就行了
      第二,就是我现在实现的(一个修改功能的代码,)。父页面代码:
     function getUser(UserId){
    UserManager.getUserById(UserId,function(data){//这里是dwr实现
    var obj = new Array(3);
    obj[0]=data.name;//dwr配置值后可以直接取值了
    obj[1]=data.sex;
    obj[2]=data.age;
              var url="<%=request.getContextPath()%>/modifyUser.jsp";
              var result = window.showModalDialog(url,obj,"dialogWidth=380px;dialogHeight=280px");
              window.location.href=encodeURI(encodeURI("UserAction.do?action=modifyUser&name="+result[1]+"&age="+result[2]+"&sex="+result[0]+"&id="+UserId));
    这里我还有个疑问:父页面的值是用foreach循环出来了,那么做修改功能时能不能不用从数据库中再查询一次?(我起初是想把这里的值直接在页面上传值后修改,但foreach这样实现根本无法通过js取到对应的值。我想知道的是我这样的想法是否可行?如果可行是什么方式或是什么技术能实现我所说的?因为我觉得这样做会提高运行效率,但同时我也知道在页面上频繁而又大批量的传值是不安全的,那么在这里你们是怎么认为的?)
    那么按照8楼的说法,我这样用showModalDialog传值,在子页面里用 <body onload="initradio('r',' <%=request.getParameter("value") %>')"> 也是根本行不通的了
    刚学java不久,可能有太多的“愚见”,希望得到各位同仁的指点
      

  9.   

     页面中添加隐藏域,获取数据库返回值;<input type="hidden" id="value">
    <script type="text/javascript"> 
    if(doucment.getElementById("value").value.length>0){
    var radios=document.getElementsByName(radioname); 
     for(var i=0;i <radios.length;i++){ 
         if(radios[i].value==doucment.getElementById("value").value){ 
            radios[i].checked=true; 
          } 
        } 

    </script> 
      

  10.   

    我只是举个例子而已,不知道你用的什么架构,应该是后台servlet或者action中将你的user对象查询出来,一般来讲是一个user的list,使用request.setAttribute(attrName,attrValue);将参数传到前台页面,attrName是参数名(前台页面中取得参数时用到),attrValue是参数值(也就是前面的list),跳转到前台页面,使用List list = (List)request.getAttribute(attrName);得到参数,然后遍历这个list,动态显示页面内容,那个点击的链接可以这样写:<a href="<%=request.getContextPath()%>/modifyUser.jsp?id=<%=user.id %>"><%=user.id %></a>