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