Javascript 如果所有三个选择框都具有选定值,则页面刷新功能
所以我有3个选择框和一个提交按钮。如果在任何选择框中未选择任何值,则单击“提交”按钮时不会发生任何情况。如果在所有3个选择框中都选择了值,则单击提交按钮将以2秒的延迟刷新页面 以下是迄今为止我所拥有的不起作用的东西: HTMLJavascript 如果所有三个选择框都具有选定值,则页面刷新功能,javascript,jquery,html,Javascript,Jquery,Html,所以我有3个选择框和一个提交按钮。如果在任何选择框中未选择任何值,则单击“提交”按钮时不会发生任何情况。如果在所有3个选择框中都选择了值,则单击提交按钮将以2秒的延迟刷新页面 以下是迄今为止我所拥有的不起作用的东西: HTML 但是我在这里遇到的问题是,如果语句不正确(onload等),就不会定义refresh。我已经四处找了几个小时,找不到什么,或者我做的不对。任何帮助或指导都将不胜感激。您当前的代码存在一些问题: jQuery选择器$(“.select1”和&“.select2”的使用不正
但是我在这里遇到的问题是,如果语句不正确(onload等),就不会定义refresh。我已经四处找了几个小时,找不到什么,或者我做的不对。任何帮助或指导都将不胜感激。您当前的代码存在一些问题:
- jQuery选择器
的使用不正确。。$(“.select1”和&“.select2”
- jQuery选择器使用类似CSS的选择器文本来收集多个规则
- 因为要检查的是三个不同的值,所以必须检查每个值 一个
- 函数
的作用域和位置不明确且未调用refresh()
- jQuery没有
属性,您必须通过jQuery对象的.value
调用它.val()
函数刷新(){
如果($(“.select1选项:选中”).val()!=“0”&&
$(“.select2选项:已选”).val()!=“0”和
$(“.select3选项:选中”).val()!=“0”){
setTimeOut(函数(){
window.location.reload();
}, 2000 );
}
}
你在某个地方错了
if($(".select1" && ".select2" && ".select3")).value !== "0") {
function refresh (timeoutPeriod) {
refresh = setTimeout(function() {
window.location.reload(true);
},timeoutPeriod);
}
}
这行不通。用计算机语言,你需要检查一个条件,然后转到另一个条件
如果所有操作符都是bool,那么您使用的条件将起作用,例如
if((bool1 && bool2 && bool3) {
/* code executes if all three bools are true!
*/
}
所以你需要的是:
if($('.select1'.val() != '0' &&
'.select2'.val() != '0' &&
'.select3'.val() != 0)) {
function refresh (timeoutPeriod) {
refresh = setTimeout(function() {
window.location.reload(true);
}, timeoutPeriod);
}
}
这样,您将首先检查select1,然后选择2,最后一个,如果它们都没有0
值,则该函数将继续。否则它将保持原样
下面是算法的提琴:
很抱歉,我还有很短的时间祈祷!所以你可以从fiddle获得基本代码:)我已经解释了select如何在那里工作
祝你好运,兄弟。你想要更优雅的解决方案吗 HTML:
$(“.select1”&&“.select2”&&“.select3”)
–这并不是你所认为的那样……在if语句中定义函数也没有什么意义;除此之外,您没有调用该函数。你真的应该先学习一些JS基础知识。你不需要在选择器中选择option:selected
。此外,您还需要!=“0”
,而不是=
,您应该使用&&
,而不是|
。如果所有3项都有选择,Geblord希望重新加载页面。哎呀!谢谢=)我的答案可能是有史以来最容易通过的表格了!:谢谢你的帮助,它对我非常有效,但我使用了代码盗版,因为如果在我的循环中更改类名,它会更有效。
if($(".select1" && ".select2" && ".select3")).value !== "0") {
function refresh (timeoutPeriod) {
refresh = setTimeout(function() {
window.location.reload(true);
},timeoutPeriod);
}
}
if((bool1 && bool2 && bool3) {
/* code executes if all three bools are true!
*/
}
if($('.select1'.val() != '0' &&
'.select2'.val() != '0' &&
'.select3'.val() != 0)) {
function refresh (timeoutPeriod) {
refresh = setTimeout(function() {
window.location.reload(true);
}, timeoutPeriod);
}
}
<select class="select1" onchange="handleChange($(this))">
<option value="0">-- Please Select --</option>
<option value="5">Blue</option>
<option value="6">Green</option>
<option value="7">Red</option>
</select>
<select class="select2" onchange="handleChange($(this))">
<option value="0">-- Please Select --</option>
<option value="5">big</option>
<option value="6">small</option>
<option value="7">medium</option>
</select>
<select class="select3" onchange="handleChange($(this))">
<option value="0">-- Please Select --</option>
<option value="5">1</option>
<option value="6">2</option>
<option value="7">3</option>
</select>
<input type="submit" onclick="tryRefresh(2000)">
var selected = 0;
function handleChange($select) {
$select.val() ? selected++ : selected--;
}
function tryRefresh(delay) {
if (selected === 3) {
setTimeout(refresh, delay);
}
}
function refresh() {
window.location.reload(true);
}