2013-02-01 36 views
1

我有一个我的同事建立的javascript数组代码。我已经解决了这个问题,所以根据你选择的复选框,它会去指定的页面(zero.html。zeroone.html等)。我现在想要完成的是,当你选择多个复选框时,它会根据选中的复选框转到另一个页面。Javascript复选框有多个选择结果的数组

这里是我们的代码:

<script language="javascript"> 
<!-- Activate Cloaking Device --> 

// Set in dataBase() function - used as array index. 
var recnum=""; 
// Used to initialize arrays. 
function initArray() 
    { 
this.length = initArray.arguments.length; 
for (var i = 0; i < this.length; i++) 
    { this[i] = initArray.arguments[i]; } 
} 
// Creating the arrays 
var rcrd = new initArray(); 
var address = new initArray(); 
address[0] = "zero.html"; 
address[1] = "one.html"; 
address[2] = "two.html"; 
address[0,1] = "zeroone.html"; 
address[0,2] = "zerotwo.html"; 
address[1,2] = "onetwo.html"; 
address[0,1,2] = "zeroonetwo.html"; 

// Called by onClick for each checkbox button - determines & displays url in full window 
function dataBase(leapto) 
{ 
for (var i = 0; i < 4; i++) 
    { 
    if (leapto.buttons[i].checked) 
     { recnum = leapto.buttons[i].value; } 
    } 
if ((rcrd[recnum] !=null) && (rcrd[recnum] != "")) 
    { document.leapto.display.value = rcrd[recnum]+"\r\n\r\n"+address[recnum]; } 
} 
// Called by Search Now button - Loads preselected page. 

function leapTo() 
{ 
if ((address[recnum] !=null) && (address[recnum] != "") && (recnum != "")) 
window.location= address[recnum]; 
else 
    alert("\nYou must make a selection first."); 
} 
// Deactivate Cloaking 
</script> 
</head> 
<body> 
<form name="leapto"> 
<input type="checkbox" name="buttons" value="0" onclick="dataBase(this.form)" /> Zero<br /> 
<input type="checkbox" name="buttons" value="1" onclick="dataBase(this.form)" /> One<br /> 
<input type="checkbox" name="buttons" value="2" onclick="dataBase(this.form)" /> Two<br /> 
<input type="button" class="classname" width="400" height="50" border="0" value="Search Now" onclick="leapTo()" /></form> 
<script> 
function myFunction(){var x;if (name!=null) {document.getElementById("demo").innerHTML=x;}} 
</script> 
</body> 
+0

顺便说一句,我们都不需要自1997年左右古 –

+0

习惯脚本伪装,多为我的笔记 – mark1178

回答

0

感谢大家的帮助,通过这里的项目后,我有一个朋友谁知道jquery很好,并得到它的工作与你们两个人的想法。

这里是我的代码: http://cdpn.io/zLuDC

+0

这里是我的代码在jsfiddle http://jsfiddle.net/mark1178/D4HxK/ – mark1178

0

我在想如何使它更简单。

HTML

<div id="our-checkboxes"> 
    <input type="checkbox" value="zero"/> 
    <input type="checkbox" value="one"/> 
    <input type="checkbox" value="two"/> 
    <input type="button" value="Click me to go to page" id="btn-to-click" /> 
</div> 

好了,所以这是HTML,现在我将使用JavaScript jQuery库

的JavaScript

​​

我希望这有助于写。

+0

感谢Senad。不幸的是,我的JavaScript知识在图腾柱上非常低。你能详细说明吗?感谢您的回复 – mark1178

0

我认为,你可以写这样一来,使用JQuery:

var address = [["1","one.html"],["2","two.html"],["1-2","otherpage.php"]]; 

var toRespondToEventAfterTheSelection = function(){ 
    var selection = ''; 
    $("#parentOfInputs input:checked").each(function(i,e){ 
    if (selection != '') selection += "-"; 
    selection += $(e).val(); 
    }); 
    if (selection != ''){ 
    var page = ''; 
    for (dir in address) { 
     if (address[dir][0] == selection){ 
     page = address[dir][1]; 
     break; 
     } 
    } 
    if (page != '') document.location = page; 
    } 
}); 

另一种替代解决方案,得到了串与选择后,您可以在服务器中创建一个文件,该文件对此作出回应字符串将用户发送到显示错误的相应页面。

+0

非常感谢Moises,不幸的是我们无法访问服务器,并且PHP未启用(为什么我们不确定)。 – mark1178

+0

在这种情况下,这个Javascript可以是一个解决方案。您可以轻松调整复选框的值和数量,而无需更改计数器。 –