Javascript bxSlider:如何防止bxSlider转到下一张幻灯片?

Javascript bxSlider:如何防止bxSlider转到下一张幻灯片?,javascript,jquery,jquery-validate,bxslider,Javascript,Jquery,Jquery Validate,Bxslider,我正在使用bxSlider插件创建一个jsweb应用程序。在一张幻灯片上有一个表单,在我进入下一张幻灯片之前需要验证该表单。对于验证,我使用jqueryvalidate插件,它在表单有效时返回true/false 当表单无效时,如何使bxSlider不转到下一张幻灯片?我更喜欢使用默认的bxSlider next/prev控件 初始化bxSlider的函数: bxSliderInit: function() { var $slider = $(dom.slider); $(do

我正在使用bxSlider插件创建一个jsweb应用程序。在一张幻灯片上有一个表单,在我进入下一张幻灯片之前需要验证该表单。对于验证,我使用jqueryvalidate插件,它在表单有效时返回true/false

当表单无效时,如何使bxSlider不转到下一张幻灯片?我更喜欢使用默认的bxSlider next/prev控件

初始化bxSlider的函数:

bxSliderInit: function() {
    var $slider = $(dom.slider);

    $(dom.body).on('click', dom.pageLink, function(e) {
        e.preventDefault();

        _this = $(this);
        slideFinished = true;
        //newSlide = _this.data('slide-index');

        app.slidePaging();
    });

    slider = $slider.bxSlider({
        mode: 'horizontal',
        easing: 'ease-out',
        infiniteLoop: false,
        touchEnabled: false,
        preventDefaultSwipeY: true,
        preventDefaultSwipeX: true,
        responsive: false,
        slideWidth: 1024,
        pager: false,
        prevText: '<i class="icon icon-arrow-left"></i>',
        nextText: '<i class="icon icon-arrow-right"></i>',

        onSlideBefore: function($slideElement, oldIndex, newIndex) {
            app.slideValidation($slideElement, oldIndex, newIndex);
        }
    });
},
bxSliderInit:function(){
var$slider=$(dom.slider);
$(dom.body).on('click',dom.pageLink,函数(e){
e、 预防默认值();
_this=$(this);
slideFinished=true;
//newSlide=_this.data('slide-index');
app.slidePaging();
});
slider=$slider.bxSlider({
模式:“水平”,
放松:“放松”,
无穷远:错,
touchEnabled:false,
斯威佩:是的,
是的,
回答:错,
滑动宽度:1024,
传呼机:错,
上一个文本:“”,
下一个文本:“”,
onSlideBefore:函数($slideElement、oldIndex、newIndex){
应用程序slideValidation($slideElement、oldIndex、newIndex);
}
});
},
BxSlider回调在验证表单之前进行

slideValidation: function($slideElement, oldIndex, newIndex) {

    var $thisSlidevalidationForm = $(dom.slider).children().eq(oldIndex).find(dom.formValidationClass),
        validationFromExist = $thisSlidevalidationForm.length > 0 ? true : false;

    if (oldIndex < newIndex) {
        if (validationFromExist) {

            if (!$thisSlidevalidationForm.valid()) {
                //slider.dontDoTransition
            }
        }
    }
},
slideValidation:function($slideElement,oldIndex,newIndex){
var$thislidevalidationform=$(dom.slider.children().eq(oldIndex.find)(dom.formValidationClass),
validationFromExist=$thisSlidevalidationForm.length>0?真:假;
如果(旧索引<新索引){
如果(validationFromExist){
if(!$thislidevalidationform.valid()){
//slider.dontdo转换
}
}
}
},
一切似乎都很好,我只是无法在表单无效时强制bxSlider停留在当前幻灯片上


谢谢你的帮助

经过一些实验和想法,以下是解决方案:

onSlideBefore: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
                    return currentSlideNumber--;
    }

使用auto:false直到验证auto:false是默认选项,而auto:true不是必需的,因为当用户希望滑动到另一页时,这取决于用户。我希望在表单无效时停止幻灯片放映(不转换到下一张幻灯片)。