web-dev-qa-db-fra.com

Rediriger à l'aide de jQuery

J'utilise donc jquerymobile pour une application que je crée. J'ai un lien que si toute la validation réussit, j'aimerais passer, mais si quelque chose échoue, je voudrais rediriger.

Dans le jquery quelque chose comme ça. Comme il s'agit de jquerymobile, le lien sera une nouvelle div sur la même page index.html - si cela vous aide.

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

Vous pouvez utiliser le window.location pour rediriger un navigateur:

https://developer.mozilla.org/en/DOM/window.location

13
Razor Storm

Vous pouvez utiliser JavaScript natif de JavaScript window.location

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

    if(validation_fails) {
        window.location="http://this.site.com/";
    }
    else {
        return true;
    }
}
13
jondavidjohn

Vous pouvez hacher l'ID div sur le window.location pour afficher le div. Quelque chose comme:

$(#link).click(function(){  
  if(validation_fails) window.location += "#<YOUR_DIV_ID>" ;  
  else return true;
}
1
Chandu
$(#link).click(function(){  
  if(validation_fails){
    var loc = window.location;
    window.location = loc.protocol+"//"+loc.hostname+loc.pathname+"#somedivid";
  } else return true;
}

Vous avez besoin du code supplémentaire au-delà de la réponse de @ Cybermate car sinon vous continuerez à ajouter le hachage chaque fois qu'il échoue, par exemple "http://foo.com/bar#whee", puis "" http://foo.com/bar#whee#whee ", etc.

Edit: Si le port peut être utilisé, vous pouvez l'inclure conditionnellement:

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