0

CLOSEDの値をTESTINGに書き直そうとしています。選択ボックスは動的に入力されることに注意してください。私のコードは以下のとおりですが、望ましい結果が得られません。

<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>
4

3 に答える 3

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]);
于 2012-10-05T14:55:06.577 に答える
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";        
    } 
}
于 2012-10-05T14:54:51.087 に答える
0

値は 0、1、2 などの数値であるため、コードを以下のように変更する必要があります。

<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>
于 2012-10-05T15:06:49.127 に答える