У меня есть форма, в которой я использую кнопки «Далее» и «Предыдущий» для навигации, показывая или скрывая каждое последующее поле.
<ol class="fs-fields">
<ul>
<label>{{form.project_name.label_tag}}</label>
<input id="id_project_name" name="project_name" type="text" placeholder="Project Name" required/>
<button type="button" class="fs-next">Next</button>
</ul>
<ul>
<label>{{form.project_orgName.label_tag}}</label>
<input id="id_project_orgName" name="project_orgName" type="text" required>
<button type="button" class="fs-next">Next</button>
<button type="button" class="fs-previous">Back</button>
</ul>
<ul>
<label>{{form.project_orgWebsite.label_tag}}</label>
<input id="id_project_orgWebsite" name="project_orgWebsite" type="text" required>
<button type="button" class="fs-previous">Back</button>
<button type="submit" name="next" class="next action-button" value="">Submit for Review</button>
</ul>
</ol>
Я хотел бы запускать эту функцию каждый раз, когда нажимается следующая кнопка или нажимается ввод, когда выбрана форма ввода:
$(document).ready(function() {
$('input').focus();
clickNext();
clickPrevious();
nextOnEnter();
i = 1;
})
function clickNext() {
//jQuery time
var current_fs, next_fs, previous_fs; //fieldsets
var left, opacity, scale; //fieldset properties which we will animate
var animating; //flag to prevent quick multi-click glitches
$(".fs-next").click(function() {
if(animating) return false;
animating = true;
current_fs = $(this).parent();
next_fs = $(this).parent().next();
// //activate next step on progressbar using the index of next_fs
// $("#progressbar li").eq($("fieldset").index(next_fs)).addClass("active");
//hide the current fieldset with style
current_fs.animate({opacity: 0}, {
step: function(now, mx) {
//as the opacity of current_fs reduces to 0 - stored in "now"
//1. scale current_fs down to 80%
scale = 1 - (1 - now) * 0.2;
//2. bring next_fs from the right(50%)
left = (now * 50)+"%";
//3. increase opacity of next_fs to 1 as it moves in
opacity = 1 - now;
current_fs.css({'transform': 'scale('+scale+')'});
next_fs.css({'left': left, 'opacity': opacity});
},
duration: 800,
complete: function(){
current_fs.hide();
animating = false;
//show the next fieldset
next_fs.show();
$('input').focus();
$('.dot' + i.toString()).addClass('completed')
$('.dot' + i.toString()).removeClass('current')
i = i+1;
$('.dot' + i.toString()).addClass('current')
},
});
});
}
function nextOnEnter() {
$('input').keypress(function(e){
if(e.which == 13){//Enter key pressed
$('.fs-next').click();//Trigger search button click event
}
});
}
Эта функция отлично работает в первый разно он работает только один раз:
Может ли кто-нибудь помочь мне понять, что функция nextOnEnter () работает более одного раза?