问题
Looks like there's been much discussion on this already, but I just can't get my code work.
I have a Django project and templates with Bootstrap tab pills. I am trying to bind tab menu pills to my Django project's urls. And I just can't get read of Uncaught Error: Syntax error, unrecognized expression: /employee_user_info/40/
error on client side. Here's my code:
HTML:
<div class="container">
<h2>{{person_details_form.second_nm_rus.value}} {{person_details_form.first_nm_rus.value}} {{person_details_form.middle_nm_rus.value}}</h2>
<ul class="nav nav-pills">
<li class="active"><a data-toggle="pill" href="#home">Tab 1</a></li>
<li><a data-toggle="pill" href='/employee_user_info/{{employee_unique_id}}/'>Tab 2</a></li>
<li><a data-toggle="pill" href="#menu2">Tab 3</a></li>
</ul>
<div class="tab-content" style="margin-top:2%">
<div id="home" class="tab-pane fade in active">
<div class="container">
<!-- Something -->
</div>
</div>
</div>
Django urlconf
url(r'^employee_user_info/(?P<employee_unique_id>\d+)/$',employee_views.profile_user_info, name ='employee_user_info'),
JS
var navpills = $('.nav-pills');
$(function () {
// activate tab on click
navpills.on('click', 'a', function (e) {
var $this = $(this);
// prevent the Default behavior
e.preventDefault();
// send the hash to the address bar
window.location.hash = $this.attr('href');
// activate the clicked tab
$this.tab('show'); // The error arises here
});
$(window).bind('hashchange', refreshHash);
// read has from address bar and show it
if(window.location.hash) {
// show tab on load
refreshHash();
}
});
function refreshHash() {
navpills.find('a[href="'+window.location.hash+'"]').tab('show');
}
UPDATE:
The error happens on the client side when I click Tab 2.
UPDATE 2
When pressing Tab 2, the url becomes http://127.0.0.1:8000/employee_profile_main/40/#/employee_user_info/40/
I guess, the buck stops here
回答1:
You can't set href
for a
with /
. I am guessing that it used as selector.
来源:https://stackoverflow.com/questions/37615272/linking-bootstrap-tabs-to-server-urls