重定向到不同的页面,基于选中的复选框组合
Redirect to different pages based on which combination of checkboxes are checked
首先,我在这里找到了一堆解决问题各个方面的答案,但就我的生活而言,我无法将它们全部缝合在一起,以实现我所需要的功能。
基本上,我有一个带有两组复选框的表格——第一组包含12种水果(苹果、橙子、奇异果、蓝莓等),第二组包含9种颜色(红、黄、蓝、绿等)。
用户可以创建几个组合,但我只感兴趣的是用户是从第一组中选择"苹果",还是从第二组中选择了"红色"或"绿色"。用户可以根据自己的选择访问三个不同的登录页:
- 从第一组中选择"apples"的用户AND也选择"red"AND/OR第二组中的"green"被重定向到page1a.html
- 从第一组中选择除"苹果"以外的任何内容的用户从第二组中选择"红色"和/或"绿色"以重定向到page1b.html
- 选择"苹果"、"红色"或"绿色"以外的任何内容的用户都是重定向到page1c.html
我想我知道如何检查是否选中了一个复选框:
var isChecked = $('input[name="apples"]:checked').length > 0;
我给"苹果"、"红色"answers"绿色"复选框提供了唯一的类和名称,这样我就可以瞄准它们:
<input type="checkbox" class="apples" name="apples" value="apples" />
<input type="checkbox" class="red" name="red" value="red" />
<input type="checkbox" class="green" name="green" value="green" />
etc.
我或多或少知道如何将用户重定向到某个位置。超出我能力范围的是如何处理这些组合场景。
有人用js做过这样的事情并愿意分享你的知识吗?提前感谢!
-----------在以下2016-03-30添加了代码/注释---------------
以下是我在<head>
:中输入的内容
<script>
function screenUsers(){
var apples = $('input[name="apples"]');
var red = $('input[name="red"]');
var green = $('input[name="green"]');
if ( apples.is(':checked') && ( red.is(':checked') || green.is(':checked') ) ) {
// ... redirect to page
window.location.href="http://www.google.com" ;
} else if ( ! apples.is(':checked') && ( red.is(':checked') || green.is(':checked') ) ) {
// ... redirect to page
window.location.href="http://www.yahoo.com" ;
} else {
// ... redirect to page
window.location.href="http://www.aol.com" ;
}
}
</script>
我尝试过将<input type="submit" value="Continue" onclick="screenUsers()">
用于提交按钮,将<form onsubmit="screenUsers()">
用于表单标记,但两者都不会触发脚本。有什么想法吗?
我们只需要将您的逻辑应用于您的代码-所以我们开始:
你说:
从第一组中选择"apples"的用户AND也选择"red"AND/OR第二组中的"绿色"被重定向到page1a.html
首先,由于您将要访问这些内容,让我们将它们分配给一些变量:
var apples = $('input[name="apples"]');
var red = $('input[name="red"]');
var green = $('input[name="green"]');
并且,让我们应用逻辑://如果选择了苹果,并且选择了红色或绿色。。。if(apples.is(':checked')&;(红色.is(':checked')||green.is(':checked')){//。。。重定向到page1a.html}
你说:
从第一组中选择除"苹果"以外的任何内容的用户从第二组中选择"红色"和/或"绿色"以重定向到page1b.html
所以,一些逻辑是这样的:
// If apples is NOT selected, AND red or green is selected
if ( ! apples.is(':checked') && ( red.is(':checked') || green.is(':checked') ) ) {
// ... redirect to page1b.html
}
最后,你说:
Users that select ANYTHING BUT 'apples' OR 'red' OR 'green' are redirected to page1c.html
这可能只是在"其他"条件下处理。
将它们全部粘贴到一个单独的脚本块中:
var apples = $('input[name="apples"]');
var red = $('input[name="red"]');
var green = $('input[name="green"]');
if ( apples.is(':checked') && ( red.is(':checked') || green.is(':checked') ) ) {
// ... redirect to page1a.html
} else if ( ! apples.is(':checked') && ( red.is(':checked') || green.is(':checked') ) ) {
// ... redirect to page1b.html
} else {
// ... redirect to page1c.html
}
当然还有其他方法可以处理这个问题,但这是您可以使用的一般模式。
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用jQuery只返回选中复选框后的第一个表单元格值
- 如果选中复选框,则显示引导模式
- 更改类以选中复选框JavaScript
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 如何获取所有选中复选框的所有值,然后将其提交到表单中
- 选中角度材质并选中复选框
- ui网格如何在单击行时选中复选框
- jQuery-取消选中复选框
- 我想在值的基础上选中复选框
- 如果选中复选框,则 JavaScript 添加值
- Rad网格编辑模式通过选中复选框时的java脚本启用禁用所需的字段验证器
- Jquery在初始页面加载时选中复选框时显示链接的代码
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- 选中复选框时,DOM不显示element.input.checked和ng
- 选中复选框时降低父级的不透明度
- 如何选中复选框jquery
- Jstree-Can't在AJAX调用中选中复选框,适用于经典调用.一个问题
- 选中复选框的 Jquery DOM 设置适用于真而不是假