javascript - 使用 Bootstrap Dropdown 和 Jquery 更改 Bootstrap 表单

标签 javascript jquery html twitter-bootstrap user-interface

我想使用下拉菜单和 jquery 更改要显示的表单,但似乎不起作用。我确实尝试了一个简单的代码,只使用了几个 div 和一个段落,它起作用了,或者我认为是这样,因为当我把我的表单放进去时它不再起作用了。 顺便说一句,这是我的代码:

//this is the form

<div class="container">
    <h3>Choose the brand you want to input</h3> <br>
    <select id="brand-combox" class="custom-select col-sm-2" name="brand-combox">
        <option selected value="#">Select a Brand</option>
        <option value="qnap">Qnap</option>
        <option value="asustor">Asustor</option>
        <option value="nutanix">Nutanix</option>
        <option value="dji">DJI</option>
        <option value="wps">WPS Office</option>
    </select>
</div>

<br>

<div class="container container-input" id="qnap-form" style="display: none;">
    <form>
      <div class="row">
        <div class="form-group col-md-6">
          <input type="text" name="product_name" class="form-control" placeholder="Product Name">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="cpu" class="form-control" placeholder="CPU Type">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="memory" class="form-control" placeholder="Product Memory">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="chassis" class="form-control" placeholder="Chassis Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_bay" class="form-control" placeholder="HDD Bays">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_type" class="form-control" placeholder="HDD Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="max_hdd_capacity" class="form-control" placeholder="Max HDD Capacity">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_30" class="form-control" placeholder="USB 3.0">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="usb_20" class="form-control" placeholder="USB 2.0">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="psu" class="form-control" placeholder="Power Supply">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_dimensions" class="form-control" placeholder="Color Box Dimensions">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_shipping_weight" class="form-control" placeholder="Color Box Shipping Weight">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="max_total_frames_per_second" class="form-control" placeholder="Max Total Frames per Second">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="lan" class="form-control" placeholder="LAN">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="thunderbolt_port" class="form-control" placeholder="Thunderbolt Port">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_31" class="form-control" placeholder="USB 3.1">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="base_free_ip_cam" class="form-control" placeholder="Base Free IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_supported_ip_cam" class="form-control" placeholder="Max Supported IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_recording_throughput" class="form-control" placeholder="Max Recording Throughput">
        </div>

        <div class="form-group col-md-3">
          <?php
            //read product segment
            $stmt = $segment->read();

            //put them in select dropdown
            echo "<select class='custom-select col-sm-12' name='segment_id'>";
            echo "<option selected>Select Segment...</option>";

              while($row_segment = $stmt->fetch(PDO::FETCH_ASSOC)){
                extract($row_segment);
                echo "<option value={$segment_id}>{$segment}</option>";
              }
            echo "</select>";
          ?>
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-8">
          <textarea name="descriptions" class="form-control" placeholder="Enter product descriptions"></textarea>
        </div>

        <div class="form-group col-md-3">
          <label for="photo">Choose Image</label>
          <input type="file" name="image" class="form-control-file">
        </div>
      </div>

      <br>

      <div class="row">
        <div class="form-group col-md-3">
          <button type="submit" class="btn btn-success">Create</button>
        </div>
      </div>
    </form>
 </div>

<div class="container container-input" id="asustor-form" style="display: none;">
    <form>
      <div class="row">
        <div class="form-group col-md-6">
          <input type="text" name="product_name" class="form-control" placeholder="Product Name">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="cpu" class="form-control" placeholder="CPU Type">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="memory" class="form-control" placeholder="Product Memory">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="chassis" class="form-control" placeholder="Chassis Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_bay" class="form-control" placeholder="HDD Bays">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_type" class="form-control" placeholder="HDD Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="max_hdd_capacity" class="form-control" placeholder="Max HDD Capacity">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_30" class="form-control" placeholder="USB 3.0">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="usb_20" class="form-control" placeholder="USB 2.0">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="psu" class="form-control" placeholder="Power Supply">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_dimensions" class="form-control" placeholder="Color Box Dimensions">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_shipping_weight" class="form-control" placeholder="Color Box Shipping Weight">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="max_total_frames_per_second" class="form-control" placeholder="Max Total Frames per Second">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="lan" class="form-control" placeholder="LAN">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="thunderbolt_port" class="form-control" placeholder="Thunderbolt Port">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_31" class="form-control" placeholder="USB 3.1">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="base_free_ip_cam" class="form-control" placeholder="Base Free IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_supported_ip_cam" class="form-control" placeholder="Max Supported IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_recording_throughput" class="form-control" placeholder="Max Recording Throughput">
        </div>

        <div class="form-group col-md-3">
          <?php
            //read product segment
            $stmt = $segment->read();

            //put them in select dropdown
            echo "<select class='custom-select col-sm-12' name='segment_id'>";
            echo "<option selected>Select Segment...</option>";

              while($row_segment = $stmt->fetch(PDO::FETCH_ASSOC)){
                extract($row_segment);
                echo "<option value={$segment_id}>{$segment}</option>";
              }
            echo "</select>";
          ?>
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-8">
          <textarea name="descriptions" class="form-control" placeholder="Enter product descriptions"></textarea>
        </div>

        <div class="form-group col-md-3">
          <label for="photo">Choose Image</label>
          <input type="file" name="image" class="form-control-file">
        </div>
      </div>

      <br>

      <div class="row">
        <div class="form-group col-md-3">
          <button type="submit" class="btn btn-success">Create</button>
        </div>
      </div>
    </form>
 </div>

这是 jquery:

$('#brand-combox').on('change', function(){
                if (this.value == 'qnap') {
                    $('#qnap-form').show();
                    $('#asustor-form').hide();
                }
                else if(this.value == 'asustor'{
                    $('#qnap-form').hide();
                    $('#asustor-form').show();
                }
            });

我也尝试过任何不同的方法,但我还不能找出我遗漏了什么。 你愿意帮助我吗?

最佳答案

你的 else if 条件不符合 ) 并添加 jquery,检查它

$('#brand-combox').on('change', function(){
                if (this.value == 'qnap') {
                    $('#qnap-form').show();
                    $('#asustor-form').hide();
                }
                else if(this.value == 'asustor'){
                    $('#qnap-form').hide();
                    $('#asustor-form').show();
                }
            });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="container">
    <h3>Choose the brand you want to input</h3> <br>
    <select id="brand-combox" class="custom-select col-sm-2" name="brand-combox">
        <option selected value="#">Select a Brand</option>
        <option value="qnap">Qnap</option>
        <option value="asustor">Asustor</option>
        <option value="nutanix">Nutanix</option>
        <option value="dji">DJI</option>
        <option value="wps">WPS Office</option>
    </select>
</div>

<br>

<div class="container container-input" id="qnap-form" style="display: none;">
    <form>
      <div class="row">
        <h2>qnap</h2>
        <div class="form-group col-md-6">
          <input type="text" name="product_name" class="form-control" placeholder="Product Name">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="cpu" class="form-control" placeholder="CPU Type">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="memory" class="form-control" placeholder="Product Memory">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="chassis" class="form-control" placeholder="Chassis Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_bay" class="form-control" placeholder="HDD Bays">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_type" class="form-control" placeholder="HDD Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="max_hdd_capacity" class="form-control" placeholder="Max HDD Capacity">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_30" class="form-control" placeholder="USB 3.0">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="usb_20" class="form-control" placeholder="USB 2.0">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="psu" class="form-control" placeholder="Power Supply">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_dimensions" class="form-control" placeholder="Color Box Dimensions">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_shipping_weight" class="form-control" placeholder="Color Box Shipping Weight">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="max_total_frames_per_second" class="form-control" placeholder="Max Total Frames per Second">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="lan" class="form-control" placeholder="LAN">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="thunderbolt_port" class="form-control" placeholder="Thunderbolt Port">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_31" class="form-control" placeholder="USB 3.1">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="base_free_ip_cam" class="form-control" placeholder="Base Free IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_supported_ip_cam" class="form-control" placeholder="Max Supported IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_recording_throughput" class="form-control" placeholder="Max Recording Throughput">
        </div>

        <div class="form-group col-md-3">
          <?php
            //read product segment
            $stmt = $segment->read();

            //put them in select dropdown
            echo "<select class='custom-select col-sm-12' name='segment_id'>";
            echo "<option selected>Select Segment...</option>";

              while($row_segment = $stmt->fetch(PDO::FETCH_ASSOC)){
                extract($row_segment);
                echo "<option value={$segment_id}>{$segment}</option>";
              }
            echo "</select>";
          ?>
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-8">
          <textarea name="descriptions" class="form-control" placeholder="Enter product descriptions"></textarea>
        </div>

        <div class="form-group col-md-3">
          <label for="photo">Choose Image</label>
          <input type="file" name="image" class="form-control-file">
        </div>
      </div>

      <br>

      <div class="row">
        <div class="form-group col-md-3">
          <button type="submit" class="btn btn-success">Create</button>
        </div>
      </div>
    </form>
 </div>

<div class="container container-input" id="asustor-form" style="display: none;">
    <form>
      <div class="row">
        <h2>asustor</h2>
        <div class="form-group col-md-6">
          <input type="text" name="product_name" class="form-control" placeholder="Product Name">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="cpu" class="form-control" placeholder="CPU Type">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="memory" class="form-control" placeholder="Product Memory">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="chassis" class="form-control" placeholder="Chassis Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_bay" class="form-control" placeholder="HDD Bays">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="hdd_type" class="form-control" placeholder="HDD Type">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="max_hdd_capacity" class="form-control" placeholder="Max HDD Capacity">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_30" class="form-control" placeholder="USB 3.0">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="usb_20" class="form-control" placeholder="USB 2.0">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="psu" class="form-control" placeholder="Power Supply">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_dimensions" class="form-control" placeholder="Color Box Dimensions">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="color_box_shipping_weight" class="form-control" placeholder="Color Box Shipping Weight">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-3">
          <input type="text" name="max_total_frames_per_second" class="form-control" placeholder="Max Total Frames per Second">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="lan" class="form-control" placeholder="LAN">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="thunderbolt_port" class="form-control" placeholder="Thunderbolt Port">
        </div>

        <div class="form-group col-md-2">
          <input type="text" name="usb_31" class="form-control" placeholder="USB 3.1">
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-2">
          <input type="text" name="base_free_ip_cam" class="form-control" placeholder="Base Free IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_supported_ip_cam" class="form-control" placeholder="Max Supported IP Cam">
        </div>

        <div class="form-group col-md-3">
          <input type="text" name="max_recording_throughput" class="form-control" placeholder="Max Recording Throughput">
        </div>

        <div class="form-group col-md-3">
          <?php
            //read product segment
            $stmt = $segment->read();

            //put them in select dropdown
            echo "<select class='custom-select col-sm-12' name='segment_id'>";
            echo "<option selected>Select Segment...</option>";

              while($row_segment = $stmt->fetch(PDO::FETCH_ASSOC)){
                extract($row_segment);
                echo "<option value={$segment_id}>{$segment}</option>";
              }
            echo "</select>";
          ?>
        </div>
      </div>

      <div class="row">
        <div class="form-group col-md-8">
          <textarea name="descriptions" class="form-control" placeholder="Enter product descriptions"></textarea>
        </div>

        <div class="form-group col-md-3">
          <label for="photo">Choose Image</label>
          <input type="file" name="image" class="form-control-file">
        </div>
      </div>

      <br>

      <div class="row">
        <div class="form-group col-md-3">
          <button type="submit" class="btn btn-success">Create</button>
        </div>
      </div>
    </form>
 </div>

关于javascript - 使用 Bootstrap Dropdown 和 Jquery 更改 Bootstrap 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53760079/

相关文章:

Javascript onbeforeunload 关闭浏览器窗口

javascript - 替换自动换行

javascript - 删除连续重复的单词javascript

javascript - Flexbox 布局 - 如果足够长则多行

javascript - 为什么不显示消息?

JavaScript for 循环次数过多。

javascript - jQuery cookie 不会过期

jquery - 流程图中的刻度标签不显示

javascript - html5 3d, Canvas ,three.js

javascript - 平滑滚动和锚定标签问题