function delrole() {
if (confirm("确认删除?")) {
//alert(document.getElementsByName("roleName")[0].checked);
for ( var i = 0; i <= document.getElementsByName("roleName").length; i++) {
if (document.getElementsByName("roleName")[i].checked) {
document.getElementById("flag").value = document
.getElementsByName("roleName")[i].value;
//break;
}
}
document.getElementById("selrole").submit;
}
}js怎么总是获取不到值,请给解答下,谢谢!!

解决方案 »

  1.   

    i <= document.getElementsByName("roleName").length
    改成
    i < document.getElementsByName("roleName").length
    试试
      

  2.   

    本帖最后由 net_lover 于 2012-07-16 13:53:12 编辑
      

  3.   

    一个<s:form id="selrole" name="sel" theme="simple" method="post" action="role-delRole">
    和<input type="button" value="删除角色" onclick="delrole()" />
    就是这样啊,可是就是点删除无反应啊,什么个情况,请帮忙解决下
      

  4.   

    本帖最后由 net_lover 于 2012-07-16 14:13:32 编辑
      

  5.   

    是啊,我的input的name就是roleName啊
      

  6.   

    document.getElementsByName("roleName")[0]
    必须在input上有这个name属性roleName
    下面是我做的例子,测试过是没问题的 var handle = function(){

    var _r = document.getElementsByName('abc');
    for(var i=0,len=_r.length;i<len;i++){
    if(_r[i].checked){
    alert(i+1);
    }
    }
    },
    _s = document.getElementById('btn');
    _s.onclick=function(){
    if(confirm("are you sure?")){
    handle();
    }

    };
      

  7.   

    我的也有啊,可是就是不行的,郁闷啊
    <s:form id="selrole" name="sel" theme="simple" method="post" action="role-delRole">
    <input type="button" name="roleName" value="删除角色" onclick="delrole()" /> 没有找到出错的地方啊
      

  8.   

    各位不好意思,刚发错了,是这个
    <s:form id="selrole" name="sel" theme="simple" method="post" action="role-delRole">
    <input type="radio" name="roleName" value="${rs.roleName}"checked="checked" />请帮忙看看,到底是哪里出了问题,谢谢啦
      

  9.   

    难道你后台没生成radio或者checkbox?
      

  10.   

    <script type="text/javascript">
    function delrole() {
    if (confirm("确认删除?")) {
    //alert(document.getElementsByName("roleName")[0].checked);
    for ( var i = 0; i <= document.getElementsByName("roleName").length; i++) {
    if (document.getElementsByName("roleName")[i].checked) {
    document.getElementById("flag").value = document
    .getElementsByName("roleName")[i].value;
    //break;
    }
    }
    document.getElementById("selrole").submit;
    }
    }
    </script>
    就是到if判断的哪里就不再执行了
      

  11.   

    本帖最后由 net_lover 于 2012-07-16 15:56:59 编辑
      

  12.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>角色查询</title>
    <script type="text/javascript">
    function delrole() {
    if (confirm("确认删除?")) {
    //alert(document.getElementsByName("roleName")[0].checked);
    for ( var i = 0; i <= document.getElementsByName("roleName").length; i++) {
    if (document.getElementsByName("roleName")[i].checked) {
    document.getElementById("flag").value = document.getElementsByName("roleName")[i].value;
    //document.getElementById("flag").value = document
    // .getElementsByName("roleName")[i].value;
    //break;
    }
    }
    document.getElementById("selrole").submit();
    }
    }
    </script>
    </head>
    <body>
    <table>
    <form id="selrole" name="sel" action="/mtest/test/role-delRole" method="post">
    <div>
    <h1>角色查询</h1>
    <input type="button" value="删除角色" onclick="delrole()" /> <input
    type="button" value="赋予用户" name="sss" onclick="" />
    </div>
    <tr>
    <td>序号</td>
    <td>选项</td>
    <td>角色名称</td>
    <td>角色描述</td>
    </tr>

    <tr>
    <td>1</td>
    <td><input type="radio" name="roleName" value="role"
    checked="checked" />
    </td>
    <td>role</td>
    <td>role</td>
    </tr>

    <tr>
    <td>2</td>
    <td><input type="radio" name="roleName" value="eeee"
    checked="checked" />
    </td>
    <td>eeee</td>
    <td>eeee</td>
    </tr>

    <tr>
    <td>3</td>
    <td><input type="radio" name="roleName" value="ssss"
    checked="checked" />
    </td>
    <td>ssss</td>
    <td>sss</td>
    </tr>

    <tr>
    <td>4</td>
    <td><input type="radio" name="roleName" value="eeee"
    checked="checked" />
    </td>
    <td>eeee</td>
    <td>ee</td>
    </tr>

    <tr>
    <td>5</td>
    <td><input type="radio" name="roleName" value="dfsgdsgfds"
    checked="checked" />
    </td>
    <td>dfsgdsgfds</td>
    <td>dasfsafaf</td>
    </tr>

    <tr>
    <td>6</td>
    <td><input type="radio" name="roleName" value="dfsgdsgfds"
    checked="checked" />
    </td>
    <td>dfsgdsgfds</td>
    <td>dasfsafaf</td>
    </tr>

    <tr>
    <td>7</td>
    <td><input type="radio" name="roleName" value="fdsskiyujgtrdefrtgyuoiujyt"
    checked="checked" />
    </td>
    <td>fdsskiyujgtrdefrtgyuoiujyt</td>
    <td>reouijygtrfrghjukiokjyugt</td>
    </tr>

    <input type="hidden" name="flag" value="" id="flag"/>
    </form>
    </table>
    </body>
    </html>这是浏览器生成的,我也没有找出原因啊,帮帮忙
      

  13.   

    除了循环有点问题,其他都能执行啊。表单也提交了<= 改成 <
      

  14.   

    改成
    i < document.getElementsByName("roleName").length是没有问题的,是没有提示错误的,。另外,既然是单选,提交之后服务器只能得到一个值,没有必要再使用
    <input type="hidden" name="flag" value="" id="flag"/>
    传值了。另外,最好标准化你的表单,<table>
    <tr>table,tr之间是不能放其他的东西的。把
    <form id="selrole" name="sel" action="/mtest/test/role-delRole" method="post">
    <div>
    <h1>角色查询</h1>
    <input type="button" value="删除角色" onclick="delrole()" /> <input
    type="button" value="赋予用户" name="sss" onclick="" />
    </div>移到表格外面去,<input type="hidden" name="flag" value="" id="flag"/>
    </form>也是一样,
    有些浏览器会对这些不合规定的内容进行删除的,。参见
    这个文章的总结
    http://blog.csdn.net/net_lover/article/details/7162136
      

  15.   

    问题解决了,是hibernate机制的原因,谢谢大家帮忙