Невозможно отобразить скрытые элементы, используя JQuery - PullRequest
0 голосов
/ 22 января 2020

МОЙ JQuery код работает нормально, но там, где я его размещаю, он не будет работать. Я много чего перепробовал, но не смог выполнить.

Мой код:

<!DOCTYPE html>
<html5 lang="en">

<head>

   <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
   <script>
       $(document).ready(function () {
           $("select").change(function () {
               $(this).find("option:selected").each(function () {
                   var optionValue = $(this).attr("value");
                   if (optionValue) {
                       $(".box").not("." + optionValue).hide();
                       $("." + optionValue).show();
                   } else {
                       $(".box").hide();
                   }
               });
           }).change();
       });
</script>


</head>
<body>
    </section>

    <section class="content">
        <div class="container-fluid">
            <div class="block-header">
            </div>

            <!-- #END# Basic Example | Vertical Layout -->
            <!-- Advanced Form Example With Validation -->
            <div class="row clearfix">
                <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                    <div class="card">
                        <div class="header">
                           <div class="body">




                            <form id="wizard_with_validation" method="POST" class="box">

                                  <h3>CRITERIA</h3>

                                <fieldset>
                                    <div class="body">
                                    <div class="col-md-12">
                                    <p>
                                        <b>Business Type</b> <span style="color:red">*</span>
                                    </p>
                                        <div class="form-group form-float">
                                        <select class="form-control">
                                        <option selected disabled>Choose Business Type</option>
                                        <option  id="sp" value="box">Sole proprietorship</option>
                                        <option id="rp" value="Registered">Registered</option>
                                        <option id="llc" value="Limited">Limited Company</option>
                                        <option id="plc" value="Private">Private limited Company</option>
                                        </select>
                                    </div>

                                </div>

                                    <div class="box">    
                                    <div class="col-md-6">
                                    <p><b>NTN Certificate</b> <span style="color:red">*</span></p>
                                    <div class="form-group">
                                     <div class="form-line">
                                     <input type="file" class="form-control" name="ntncert" id="ntncert">
                                        </div>
                                    </div>
                                </div>

                             <div class="col-md-6">
                            <p><b>NTN Registration Date</b> <span style="color:red">*</span></p>
                               <div class="form-group">
                                <div class="form-line">
                                <input type="date" class="form-control" name="ntncert" id="ntncert">
                                </div>
                                </div>
                                </div>

                                </div>
                                 </div>
                                </fieldset>

Если я помещу этот код после тега <div class="body">, он будет работать нормально, но если я разместлю его там, где он сейчас, он не будет работать. Я не знаю, что пошло не так в этом месте.

1 Ответ

0 голосов
/ 22 января 2020

Обычно вы хотите разместить свой скрипт непосредственно перед тегом </body>. Вы хотите дождаться сборки HTML DOM, прежде чем пытаться изменить его с помощью JavaScript. Аналогия: вы платите за продукты после того, как доставили их в кассу, а не раньше.

Редактировать: две другие проблемы привлекли мое внимание: - У вас есть опечатки (случайная </section> метка без начальной) , нет закрывающих тегов для набора полей и последующих элементов div, тег "html5". - Вы вызываете функцию change() сразу после определения события, что означает, что, как только событие будет запущено, оно будет срабатывать бесконечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...