Javascript Новый пользователь - он-лайн стрельба один раз - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть форма, над которой я работаю, которая будет динамически скрывать любые выборки в optgroup, все работает нормально, за исключением того, что onchange () запускает только начальное время, когда сделан первоначальный выбор. Я пытаюсь сделать так, чтобы onchange () даже срабатывал каждый раз, когда пользователь выбирает новую опцию. Раскрытие div и начального выбора работает, как я сказал.

Помогите пожалуйста!

   <script>
function toggleandhide() {
   var cont = document.getElementById('cont');
   if (cont.style.display == 'inline-block') {
       cont.style.display = 'none';
   }
   else {
       cont.style.display = 'inline-block';
   }
    var e = document.getElementById("vendor_id");
    var str = e.options[e.selectedIndex].text;
    var groups = document.getElementsByTagName('optgroup');
        for (var i = 0; i < groups.length; i++) {
            if (groups[i].label != str) {
                var options = groups[i].childNodes;
                    for (var j = 0; j < options.length; j++)
                        options[j].style.display = 'none';
            }
        }
    }
    </script>

echo "<div class=\"table\">";
echo "<div class=\"table-row\">";
echo "<div class=\"table-cell\">";
echo "Cruise Line:";
echo "</div>";
echo "<div class=\"table-cell\">";
echo "<div class=\"selectWrapper\">";
echo "<select class=\"selectBox\" name=\"vendor_id\" id=\"vendor_id\" onchange=\"toggleandhide()\">";
echo "<option value=\"\"></option>";
foreach($vendors as $key2 => $val2 ){
        echo "<option value=\"".$key2."\">".$val2."</option>";  
}
echo "</select>";
echo "</div>";
echo "</div>";
echo "</div>";
echo "</div>";


echo "<div class=\"table\">";
echo "<div id=\"cont\" style=\"display: none;\" class=\"table-row\">";
echo "<div class=\"table-cell\">";
echo "Cruise Ship  :";
echo "</div>";
echo "<div class=\"table-cell\" style=\"padding-left: 114px\">";
echo "<div class=\"selectWrapper\">";
echo "<select class=\"selectBox\" name=\"ship_id\">";
echo "<option value=\"\"></option>";
foreach($vendors as $r3 => $d3){
    foreach( $true_list as $k => $r ){
        if($d3==$vendor_name[$k]){
            if(!empty($vendor_name[$k])){
            echo "<optgroup label=\"".$vendor_name[$k]."\">";
            asort($r);
            foreach($r as $r2 => $d2){
                    echo "<option value=\"".$r2."\">".$d2."</option>";
                }
            echo "</optgroup>";
            }
        }
    }
}
echo "</select>";
echo "</div>";
echo "</div>";
echo "</div>";
echo "</div>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...