0

つまり、基本的に2つ<select>の要素があります。必要なのは、ユーザーが最初にオプションを選択し、<select>次に2番目の要素<select>が選択内容に応じてオプションを変更することです。2番目<select>は空であり、最初の取得が変更されると、2番目<select>に追加する必要があります。<options><select>

HTMLの最初の選択:

<select name="roof_width" onChange="getWidth(this.selectedIndex)" value="3" class="content_selectinput" id="select_width">
    <?php
        $i = 0;
        $x = 2;
        while(isset($dak_breedte[$i]))
        {
            if(isset($roof_width_index) && $roof_width_index == $i)
            {
                echo"<option value='$i' id='$i' selected='Selected'>".$dak_breedte[$i]." Meter </option>";
                $i++;
            }                   
            else
            {
                echo"<option value='$x'>".$dak_breedte[$i]." Meter</option>";
                $i++;
            }
        }
    ?>
</select>

HTMLの2番目の選択:

<select name="NokBreedte" onClick="ridgeCheck()" value="3" class="content_selectinput" id="select_ridge" >
</select>

JavaScript:

function getWidth(index)
{
    ridge_min = index - 10;
    ridge_max = index + 10
    ridge_select = document.getElementById("select_ridge");
    for(i = 0; i <= 99; i++)
    {
        if(i < ridge_min || i > ridge_max)
        {
            ridge_select.add(ridge_values[i]);
        }
    }
}

2番目のテキスト値は<select>配列に格納されます。しばらくWebを検索し、jQueryでも試しましたが、何も機能しません。

明確にするために、私が必要なのは:

ユーザーが最初<select>の変更を行う場合、2番目の<select>変更を直接変更する必要があります。

4

2 に答える 2

2

jqueryを使用している場合は、関数をこれに置き換えてください

function getWidth(){
    var index = $('#select_width').val();
    ridge_min = index - 10;
    ridge_max = index + 10

    var options = '';


    for(i = 0; i <= 99; i++)
    {
        if(i > ridge_min || i < ridge_max)
        {
            options += "<option>" + ridge_values[i] + "</option>";
        }
     }

     $('#select_ridge').html(options);
}

また、変更します

getWidth(this.selectedIndex)

getWidth()

アップデート

再度変更して申し訳ありませんが、次の条件を間違って使用しました。

if(i < ridge_min || i > ridge_max)

する必要があります

if(i > ridge_min || i < ridge_max)
于 2013-02-21T12:01:08.110 に答える
0

最初に、すべての古い値を削除する必要があります(onChangeの関数で使用する必要があるすべてのコード)

//Clear the HTML Select DropdownList
$('#select_ridge option').empty();

});

新しい値を追加する必要があった後

    var listvalues= new Array();    
    listvalues[0] = { Text: "val1", Value: "1" };
    listvalues[1] = { Text: "val2", Value: "2" };    
    listvalues[2] = { Text: "val3", Value: "3" };    

    $.each(listvalues, function (index) {            
            $("#select_ridge").append(GetOption(listvalues[index].Text, listvalues[index].Value));        
            });    
    });    
    function GetOption(text, value) {        
            return "<option value = '" + value + "'>" + text + "</option>"    
    }
于 2013-02-21T12:04:56.383 に答える