'bs stepper Uncaught TypeError: this._element is undefined
I have database results (reviews) which reviews can also be reported by the logged user. Before I make these reviews load through AJAX call the bs stepper worked perfectly (it is used for steps while reporting a review). Now when the database results (reviews) are loaded through AJAX call the bs stepper is giving me the following error on page load
Uncaught TypeError: this._element is undefined
Any idea how can I fix this?
Here is how I define bs steppers for each review
@foreach($reviews as $review)
$("#sendReportButton{{ $review['id'] }}").on('click', function() {
$("#reportModal{{ $review['id'] }}").modal('toggle');
$("#submitReportForm{{ $review['id'] }}").submit();
});
var stepper{{ $review['id'] }} = new Stepper($('#bs-stepper{{ $review["id"] }}')[0]);
var stepperElement{{ $review['id'] }} = $("#bs-stepper{{ $review['id'] }}");
var nextStep{{ $review['id'] }} = function() {
stepper{{ $review['id'] }}.next();
}
$("#nextButton{{ $review['id'] }}").on('click', nextStep{{ $review['id'] }});
$("#backButton{{ $review['id'] }}").on('click', function() {
stepper{{ $review['id'] }}.previous();
});
$("#backButton{{ $review['id'] }}").hide();
stepperElement{{ $review['id'] }}[0].addEventListener('shown.bs-stepper', function (event) {
if(event.detail.indexStep == 0) {
$("#nextButton{{ $review['id'] }}").off().removeAttr('disabled').on('click', nextStep{{ $review['id'] }});
if($("#sendReportButton{{ $review['id'] }}").length == 0) {
if($("#nextButton{{ $review['id'] }}").hasClass('btn-danger')) {
$("#nextButton{{ $review['id'] }}").attr('type', 'button').text('Continue').removeAttr('not-allowed').removeClass('btn-danger').addClass('btn-primary');
} else if($("#nextButton{{ $review['id'] }}").hasClass('btn-secondary')) {
$("#nextButton{{ $review['id'] }}").attr('type', 'button').text('Continue').removeAttr('not-allowed').removeClass('btn-secondary').addClass('btn-primary');
}
} else {
if($("#sendReportButton{{ $review['id'] }}").hasClass('btn-danger')) {
$("#sendReportButton{{ $review['id'] }}").attr('type', 'button').text('Continue').removeAttr('not-allowed').removeClass('btn-danger').addClass('btn-primary');
} else if($("#sendReportButton{{ $review['id'] }}").hasClass('btn-secondary')) {
$("#sendReportButton{{ $review['id'] }}").attr('type', 'button').text('Continue').removeAttr('not-allowed').removeClass('btn-secondary').addClass('btn-primary');
}
}
$("#backButton{{ $review['id'] }}").hide();
}
if(event.detail.indexStep > 0) {
$("#backButton{{ $review['id'] }}").show();
}
if(event.detail.indexStep == 1) {
button({{ $review['id'] }});
if(!$("input[name='reason']").is(':checked')) {
$("#nextButton{{ $review['id'] }}").off().attr('disabled','disabled');
}
$("input[name='reason']").on('change', function() {
if ($(this).is(':checked')) {
$("#nextButton{{ $review['id'] }}").off().removeAttr('disabled').on('click', nextStep{{ $review['id'] }});
}
});
}
if(event.detail.indexStep == 2) {
if($("#sendReportButton{{ $review['id'] }}").length == 0) {
$("#nextButton{{ $review['id'] }}").attr({type:'submit', id:'sendReportButton{{ $review['id'] }}'}).text('Send Report').removeClass('btn-primary').addClass('btn-danger');
} else {
$("#sendReportButton{{ $review['id'] }}").attr('type', 'submit').text('Send Report').removeClass('btn-primary').addClass('btn-danger');
}
}
});
@endforeach
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
