2011-01-06 75 views
19

所以,我正在使用jquerymobile創建一個應用程序。我有一個鏈接,如果所有驗證通過我想要通過,但如果失敗,我想重定向。使用jQuery重定向

在jQuery的東西是這樣的。由於它是jquerymobile,鏈接將在同一個index.html頁面上成爲一個新的div - 如果有幫助的話。

$(#link).click(function(){ 
    if(validation_fails) link_elsewhere; 
    else return true; 
} 
+0

這真的只是javascript,沒有什麼真正與jquery。 – jondavidjohn 2011-01-06 03:45:03

回答

1

您可以哈希DIV ID給window.location的顯示DIV。 喜歡的東西:

$(#link).click(function(){ 
    if(validation_fails) window.location += "#<YOUR_DIV_ID>" ; 
    else return true; 
} 
13

您可以使用JavaScript的本地window.location

$('#link').click(function(){ 

    if(validation_fails) { 
     window.location="http://this.site.com/"; 
    } 
    else { 
     return true; 
    } 
} 
1
$(#link).click(function(){ 
    if(validation_fails){ 
    var loc = window.location; 
    window.location = loc.protocol+"//"+loc.hostname+loc.pathname+"#somedivid"; 
    } else return true; 
} 

你需要額外的代碼超越@ Cyber​​mate的答案,因爲否則你會保持每次它追加哈希失敗,例如「http://foo.com/bar#whee」,然後 「」 http://foo.com/bar#whee#whee」等

編輯: 如果可能被使用的端口,你可以有條件地包括它:

window.location = loc.protocol + "//" + loc.hostname + 
        (loc.port && ":"+loc.port) + 
        loc.pathname + "#somedivid"; 
+0

loc.port可用於需要端口號時 – 2012-11-03 10:04:52