必须选择多个选择输入

时间:2016-08-07 16:10:32

标签: javascript php jquery

我有两个选择输入,必须在#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">

4 个答案:

答案 0 :(得分:0)

你想要的是使用&#34; ||&#34;这意味着&#34; OR&#34;而不是&#34;&amp;&amp;&#34;这意味着&#34; AND&#34;。

在这种情况下,如果它们中的任何一个为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();
}

答案 1 :(得分:0)

这里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();
        }
    });
});

这足以实现您想要的目标

答案 2 :(得分:0)

你可以这样试试,

$(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);


});

答案 3 :(得分:0)

使用过滤器和切换

,有更简单的方法可以做到这一点

$(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">