2011-02-24 73 views
1

我有類似下面的switch語句幾個複選框:重定向基礎上選擇複選框使用JavaScript

function whatsChecked(obj) { 
    var indx = obj.id.substring(obj.id.length-1, obj.id.length); 
    switch (indx) { 
     case '9': 
      if (document.sport.soccer_9.checked) { 
       //window.open.href = "../google.com";; 
       window.open("../google.com"); 
      } 
      break; 
     } 
    } 
} 

如何使用繼續按鈕確定單擊該複選框,然後重定向我到正確的網頁(而不是給每個複選框它是自己的onclick事件)?

回答

0

我會做一個變量,根據檢查哪個複選框切換。 (也許是一個int值)

然後,當你點擊'繼續'時,你可以說If (click == 1) { window.open(www.google.com") }或其他的東西。可能不是最優雅的解決方案,但肯定應該起作用。

+0

這將如何與每個複選框將工作到不同的鏈接?例如複選框1去谷歌和複選框2去雅虎等 – jack 2011-02-24 01:03:15

+0

如果每個複選框有一個不同的'int'值,那麼你可以通過'if'或'switch'語句來檢查它。但請跟@ amelvin的答案。他的代碼更流暢和多功能,因爲我的代碼本質上依賴於兩個值,而他的唯一依賴於一個。 (值的值) – Johannes 2011-02-24 03:38:16

1

此外,在http://jsfiddle.net/amelvin/YkFza/

在這個例子中的複選框的所有更改事件註冊自己,如果你選中複選框的值被驚動了一個箱子。如果您將alert(this.value)更改爲location.href(this.value),您將獲得重定向。

<form> 
Google: <input type="checkbox" name="Google" value="http://google.com" /> 
Yahoo: <input type="checkbox" name="Yahoo" value="http://yahoo.com" /> 
</form> 

<script> 
function AddHandlers(f) 
{ 
    var change_handler = new Function("alert(this.value)"); 

    for (var i=0; i<f.elements.length; i++) 
    { 
     var e = f.elements[i]; 
     e.onchange = change_handler;  
    } 
} 

AddHandlers(document.forms[0]); 
</script>