2012-10-05 34 views
0

我正在尝试重写已关闭的值测试。注意到选择框是动态填充的。我的代码在下面,但它不会产生所需的结果。替换选择框中的值

<html>  
    <head> 
      <script type="text/javascript"> 
       window.onload = function() { loadit() }  
       function loadit(){ 
         var x = new Array() 
         x[0] = "" 
         x[1] = "ACTIVE" 
         x[2] = "ON HOLD" 
         x[3] = "CLOSED" 

         for (i=0; i<x.length; i++) 
         { 
           document.getElementById('d1').options[i]=new Option(x[i], i) 
         } 
       } 

       function changeit() { 
         var el = document.getElementById("d1"); 
         for(var i=0; i < el.options.length; i++) 
         { 
           if(el.options[i].value == "CLOSED") 
           { 
            el.options[i].value = "TESTING"; 
            el.options[i].innerText = "TESTING";   
           } 
         } 
       } 
      </script> 
     </head> 
     <body> 
      <select name="d1" id="d1" style="width: 200px;"></select> 
      <p><a href="javascript:changeit()">change</a></p> 
     </body> 
</html> 

回答

0

你值0,1,2,3不是文字,所以在你的循环应该是:

for(var i=0; i < el.options.length; i++){ 
    if(el.options[i].value == "3"){ 
     el.options[i].value = "3"; 
     el.options[i].innerText = "TESTING";   
    } 
} 
2

看你如何创建选项

document.getElementById('d1').options[i] = new Option(x[i], i) 

该值是一个数字,因此以下检查将不会是真实的

if(el.options[i].value == "CLOSED"){ 

你可以改变它与.text区段

if (el.options[i].text== "CLOSED") { 

,或者你可以改变选择

document.getElementById('d1').options[i] = new Option(x[i], x[i]); 
0

的值是0,1,2的号码等,所以你需要更改代码的poulating下面。

<html> 

<head> 

<script type="text/javascript"> 

window.onload = function() { loadit() } 

function loadit(){ 
var x = new Array() 
    x[0] = "" 
    x[1] = "ACTIVE" 
    x[2] = "ON HOLD" 
    x[3] = "CLOSED" 

    for (i=0; i<x.length; i++) { document.getElementById('d1').options[i]=new Option(x[i], i) } 
} 

function changeit() { 

var el = document.getElementById("d1"); 
for(var i=0; i < el.options.length; i++) 
    { 
    if(el.options[i].value == "3") 
     { 
      el.options[i].value = "3"; 
      el.options[i].innerText = "TESTING"; 
     } 
    } 






} 

</script> 


</head> 

<body> 

<select name="d1" id="d1" style="width: 200px;"></select> 

<p><a href="javascript:changeit()">change</a></p> 

</body> 

</html>