У меня возникла проблема с отправкой формы, а также сменить вкладку
<ul class="nav nav-tabs">
<li><a href="#tab1" data-toggle="tab">Enter Your Personal Details </a></li>
<li><a href="#tab2" data-toggle="tab">Enter Your company Details </a></li>
</ul>
<div class="tab-content">
<div class="tab pane" id="tab1">
<form method="post" action="self.php">
<input type="text">
<input type= "submit" value="save">
</div>
<div class="tab pane" id="tab2">
<h3>Thank you for submitting your form check your email</h3>
<h2>Now input your company info</h2>
</div>
</div>
если нажать кнопку "Отправить", то появится вкладка2
Дело в том, чтобы отправить форму в обычном режиме, нужна загрузка страницы. Чтобы обойти это, я думаю, у вас есть два варианта:
Сделайте все вкладки одной единственной формой, просто обернув вкладку divs формой. Если вы это сделаете, вам придется подождать, пока все поля во всех вкладках не будут заполнены, а затем обработайте отправку формы.
Используйте AJAX для отправки данных формы через JavaScript/jQuery. Это может быть немного сложно, если у вас нет опыта работы с AJAX, но посмотрите здесь, чтобы начать работу.
В любом случае, обратите внимание, что <input type="submit">
по стандарту отправляет форму при нажатии. Если вы просто хотите, чтобы кнопка выглядела и хотите обойти это поведение, вместо этого используйте <button id="tab1-button">Save</button>
. Для примера ниже давайте предположим, что вы переключитесь на элемент <button>
и присвоите ему указанный выше идентификатор, вы должны продолжить часть JavaScript/jQuery.
$('#tab1-button').click(function (e) {
e.preventDefault(); //This prevents the default behaviour or #tab1-button, in case you still use a input type="submit"
/* In case you want to use ajax, it should go here */
$('#tab2').tab('show'); //Switching tab
});
</form>
.