2013-02-01 39 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可以是一個解決方案。您可以輕鬆調整複選框的值和數量,而無需更改計數器。 –