簡體   English   中英

必須選擇多個選擇輸入

[英]Multiple select input must be selected

我有兩個選擇輸入,必須在#GO按鈕顯示之前選擇兩個。

(dbname,user)<---這兩個選擇輸入,選擇哪個數據庫並選擇一個用戶來訪問數據庫。

該查詢的問題在於,在選擇兩者之一后,將顯示#GO按鈕。 必須在顯示#GO之前選擇兩者,否則請隱藏#GO按鈕。

腳本文件:

<script type="text/javascript">

$(document).ready(function() {

$("select").on('change',function() {


    var x = $('select[name=name]').val();
    var y = $('select[name=dbname]').val();

    if (x == 0  && y == 0) {
       $("#GO").hide();
    } else if (x == 1  && y == 0) {
        $("#GO").hide();
    } else if (y==0 && x==1) {
        $("#GO").hide();
    }else{
       $("#GO").show();
    }
});

這是PHP文件:

        <?php   echo "<select name='name' id='name'>";
                $res = $conn->query("SELECT user FROM mysql.user");
                    echo    '<option value="0">Select User</option>';
                    while($row = $res->fetch_assoc()) {
                        echo '<option value="' . $row['user'] . '">' . $row['user'] . '</option>'; }
                            echo '</select>';
                echo "<br/>"; 

        ?>

        <br>

        <?php   echo "<select name='dbname' id='dbname'>";
                $res = $conn->query("show databases");
                    echo    '<option value="0">Select Database</option>';
                    while($row = $res->fetch_assoc()) {
                        echo '<option value="' . $row['Database'] . '">' . $row['Database'] . '</option>'; }
                            echo '</select>';
                echo "<br/>"; 

        ?><br>


                <input type="submit" name="GO" value="GO" id="GO" class="GO">

您要使用“ ||” 代表“或”,而不是代表“與”的“ &&”。

在這種情況下,如果其中任何一個為0,它將被隱藏。

if (x == 0  || y == 0) {
  $("#GO").hide();
}else{
  $("#GO").show();
}

您也可以這樣:

//It checks whether both x and y are Not 0, if true, shows "#GO", else, stays hidden.

if (x != 0  && y != 0) {
  $("#GO").show();
}else{
  $("#GO").hide();
}

在此, if (x == 0 && y == 0) ,則條件僅當且僅當未選擇時才隱藏#GO按鈕。 但是您應該檢查是否未選擇其中之一,然后隱藏按鈕。 因此條件必須為if (x == 0 || y == 0) ,這意味着未選擇其中一個。

再次,

else if (x == 1  && y == 0) {
    $("#GO").hide();
} else if (y==0 && x==1) {
    $("#GO").hide();

以上兩個條件之間沒有區別。

這就是你想要的

$(document).ready(function() {
    $("select").on('change',function() {
        var x = $('select[name=name]').val();
        var y = $('select[name=dbname]').val();

        if (x == 0  ||y == 0) {
           $("#GO").hide();
        }else{
           $("#GO").show();
        }
    });
});

這將足以實現您想要做的事情

你可以這樣嘗試

$(document).ready(function() {

  var GO = $('#GO');
  var dbname = $('#dbname');
  var name = $('#name');

  GO.attr('disabled', 'disabled'); //initially disabled

  function EnableDisableGo() {

    if (verifySelect()) {
        GO.attr('disabled', '');
    } else {
        GO.attr('disabled', 'disabled');
    }
  }

  function verifySelect() {
    if (dbname.val() != '' && name.val() != '') { //if both selected
        return true;
    } else {
        return false
    }
  }

 dbname.change(EnableDisableGo);

 name.change(EnableDisableGo);


});

使用過濾器和切換按鈕,可以更輕松地完成此操作

 $(document).ready(function() { $("select").on('change',function() { $('#GO').toggle( $('#name, #dbname').filter(function() { return this.value === $('option',this).first().val(); }).length === 0 ); }).trigger('change') }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name='name' id='name'>"; <option value="0">Select User</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <br/><br/> <select name='dbname' id='dbname'> <option value="0">Select Database</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <br/><br/> <input type="submit" name="GO" value="GO" id="GO" class="GO"> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM