没有办法.你可以不用value 自己定义属性

解决方案 »

  1.   

    可以通过事件的触发者this,判断点击哪一个对象。参考如下代码:
    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 
    <script type="text/javascript">
    function aa() {
      var radio = document.getElementsByName("attr");
      for (var i = 0; i < radio.length; i++){
        radio[i].onclick = function() {
          bb(this.value);
        }
      }
    }function bb(i) {
      alert(i);
    }aa();
    </script>
      

  2.   

    function aa() 

      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++) 
      { 
        eval("radio[i].onclick = function() {  bb("+i+");}"); 
      } 
      

  3.   

    是2 那是因为你传递的参数和循环变量的名称一样,数组里一个有三个元素,当循环完以后
    i的值当然是2了。
    不想使用value属性,那你想弹出什么内容啊??
      

  4.   

      radio[i].onclick = function() { 
          bb(i); 只起到绑定函数的作用。经过循环后 i=2;在触发的时候是以2作为参数值的。除非你在激活事件的时候使用不同的参数。请参照 http://blog.csdn.net/APOLLO_TS/archive/2009/02/27/3942122.aspx 写一个函数,主要是fireEvent用法。
      

  5.   

    在onclick触发时都是去调用
    function bb(i) 

      alert(i); 
    }
    这里的i存放的是最后一次循环i的值 也就是length-1
    所以不管你点哪个都alert length-1
    就等于你给一个对象的一个值赋了很多值
    结果只留下了最后一次的值
    不使用和自身关联的方式应该不行
      

  6.   

    在eval里调用外部函数 书上说有风险 可也没看出来啥风险 这个正解
      

  7.   

    用闭包
    两个方法
    第一个
    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> 
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> 
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 
    有一段这样的JS 
    <script>
    function aa() 

      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++) 
      { 
        radio[i].onclick = (function(i){
    return function (){
    bb(i);
    }
    })(i);
      } 
    } function bb(i) 

      alert(i); 
    }
    aa();
    </script>第二个自己写个方法
    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> 
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> 
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 
    有一段这样的JS 
    <script>
    Function.prototype.bind = function(){ // 自己定义的方法
    var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift();
    return function (){
    obj.apply(oThis, args);
    }
    }
    function aa() 

      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++) 
      {
    radio[i].onclick = bb.bind(bb,i);
      } 
    } function bb(i) 

      alert(i); 
    }
    aa();
    </script>
      

  8.   

    第二个方法有误调整下
    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> 
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> 
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 
    有一段这样的JS 
    <script>
    Function.prototype.bind = function(){ // 自己定义的方法
    var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift();
    return function (){
    oThis.apply(obj, args);
    }
    }
    function aa() 

      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++) 
      {
    radio[i].onclick = bb.bind(radio[i],i);
      } 
    } function bb(i) 

      alert(i); 
    }
    aa();
    </script>
      

  9.   


    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> 
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> 
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript">
    <!--
    function aa() { 
      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++)
        (function(k){
        radio[k].onclick = function() { 
           alert(k);//bb(k);
        } 
        })(i)
    } function bb(i) { 
      alert(i); 

    onload=aa
    //-->
    </script>
      

  10.   


    <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> 
    <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> 
    <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript">
    <!--
    function aa() { 
      var radio = document.getElementsByName("attr"); 
      for(var i=0;i <radio.length;i++)
        (function(k){
            radio[k].onclick = function() { 
               bb(k);//alert(k);
            } 
        })(i)
    } function bb(i) { 
      alert(i); 

    onload=aa
    //-->
    </script>