Reputation: 1927
How would one put a link on a button with bootstrap?
there are 4 methods in the bootstrap documentation:
<a href="#" class="btn btn-info" role="button">Link Button</a>
<button type="button" class="btn btn-info">Button</button>
<input type="button" class="btn btn-info" value="Input Button">
<input type="submit" class="btn btn-info" value="Submit Button">
The first one doesn't work for me, no button shows, just the text with the link, have a feeling its the theme im using.
The second one shows the button which is what i want, but whats the code make the button link to another page when clicked?
Cheers
Upvotes: 148
Views: 495620
Reputation: 11
<div>
<a href='#' className='text-decoration-none'>
<button className="btn btn-primary btn-lg px-5 d-flex justify-content-center" type='submit'>Sign In</button>
</a>
</div>
Upvotes: 1
Reputation: 13
If you really need the button element, a nice trick that I found to make it work looks like this:
Html file
<button type="button" id="newpagebutton" class="btn btn-primary mt-4 ml-3">Open new page</button>
Javascript file
$( "#newpagebutton" ).attr('data-buttonlink', 'https://www.apple.com')
$( "#newpagebutton" ).click(function() {
const buttonlink = $("#newpagebutton").data('buttonlink')
window.open(buttonlink)
});
Have a look at how the implementation works on fiddle.js
Upvotes: 0
Reputation: 1078
Just use the anchor tag as a button. Change the role to type as below in bootstrap 5.
<a type="button" class="btn btn-info" href="#">Button</a>
Upvotes: 6
Reputation: 31
As you are asking with Bootstrap, the best option in my opinion is to choose the class btn-link.
<button type="button" class="btn btn-link">Link</button>
If you want the btn-link to send you to another page or activate something such as a modal, you can include the onClick like others suggested.
Upvotes: 2
Reputation: 791
I think the most easiest and clean approach is (without any extra javascript functions):
<a class="btn" href="#">
<i class="fas fa-cloud"></i>
</a>
To use fontawesome icons, you can just put the following link in your header:
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
And that's all
Upvotes: 0
Reputation: 14610
The easiest solution is the first one of your examples:
<a href="#link" class="btn btn-info" role="button">Link Button</a>
The reason it's not working for you is most likely, as you say, a problem in the theme you're using. There is no reason to resort to bloated extra markup or inline Javascript for this.
Upvotes: 232
Reputation: 414
You can just simply add the following code;
<a class="btn btn-primary" href="http://localhost:8080/Home" role="button">Home Page</a>
Upvotes: 4
Reputation: 239
This is how I solved
<a href="#" >
<button type="button" class="btn btn-info">Button Text</button>
</a>
Upvotes: 15
Reputation: 1544
You can call a function on click event of button.
<input type="button" class="btn btn-info" value="Input Button" onclick=" relocate_home()">
<script>
function relocate_home()
{
location.href = "www.yoursite.com";
}
</script>
OR Use this Code
<a href="#link" class="btn btn-info" role="button">Link Button</a>
Upvotes: 85
Reputation: 1113
Another trick to get the link color working correctly inside the <button>
markup
<button type="button" class="btn btn-outline-success and-all-other-classes">
<a href="#" style="color:inherit"> Button text with correct colors </a>
</button>
Please keep in mind that in bs4 beta e.g. btn-primary-outline
changed to btn-outline-primary
Upvotes: 20
Reputation: 117
Combining the above answers i find a simply solution that probably will help you too:
<button type="submit" onclick="location.href = 'your_link';">Login</button>
by just adding inline JS code you can transform a button in a link and keeping his design.
Upvotes: 10
Reputation: 5366
If you don't really need the button element, just move the classes to a regular link:
<div class="btn-group">
<a href="/save/1" class="btn btn-primary active">
<i class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></i> Save
</a>
<a href="/cancel/1" class="btn btn-default">Cancel</a>
</div>
Conversely, you can also change a button to appear like a link:
<button type="button" class="btn btn-link">Link</button>
Upvotes: 143