SweetAlert(t4t5)无法解析如何显示ValidationError

时间:2018-03-29 10:11:11

标签: javascript validation sweetalert2

我继续收到Promise错误:

  

(index):235 Uncaught(in promise)TypeError:swal.showValidationError不是函数

swal({
                text: 'Not visited',
                content: {
                    element: 'input',
                    attributes: {
                        placeholder: 'State reason',
                        type: 'text'
                    }
                },
                icon: 'info',
                buttons: [ '@lang('global.app.cancel')', '@lang('global.app.ok')'],
                closeOnConfirm: false,
                animation: "slide-from-top",
                preConfirm: (inputValue) => {
                        if (!inputValue === '') {
                            axios.post('setstatus',
                                {
                                    order_id: $(this).attr('data-id'),
                                    user_id: $(this).attr('data-usr'),
                                    remark: inputValue,
                                    order_status: 'ORDER_STATUS_NOT_VISITED'
                                }).then((res) => {
                                return res;
                            });
                        }
                        else {
                            return '';
                        }
                },
            })
            .then(function(result) {
                if(result === '' ) {
                    swal.showValidationError('@lang('global.message.state_reason')');
                    return false;
                }
                else if (result && result.data) {
                    swal({
                        text: result.data.message,
                        icon: (result.data.success ? 'success' : 'error')
                    });
                    if (result.data.success) {
                        $(this).closest('.opdracht').remove();
                        getOrders();

                    }
                }
                else if (result === false) {
                    return false;
                }

            });

在改变“preConfirm”和“then”部分以尝试不同的sweetalert配置后,我没有得到最微妙的想法。任何建议将不胜感激

1 个答案:

答案 0 :(得分:1)

由于SweetAlert2的行为与当代的不同,我重写了部分功能:

swal({
    text: '@lang('global.message.not_visited')',
    content: {
        element: 'input',
        attributes: {
            placeholder: '@lang('global.app.reason')',
            type: 'text'
        }
    },
    icon: 'info',
    buttons: [ '@lang('global.app.cancel')', '@lang('global.app.ok')'],
    closeModal: false,
})
.then(function(result) {
    if(result === '' ) {
        console.log('back');
        $('button.notvisited').click();
        return false;
    }
    else if (result) {
        console.log($('button.notvisited'));
        axios.post('{{ route('mobile.order.setstatus') }}',
            {
                order_id: $('button.notvisited').attr('data-id'),
                user_id: $('button.notvisited').attr('data-usr'),
                remark: result,
                order_status: 'ORDER_STATUS_NOT_VISITED'
            }).then((res) => {
                if( res.data ) {
                    swal({
                        text: res.data.message,
                        icon: ( res.data.success ? 'info' : 'error' ),
                    }).then( function(result) {
                            if (result) {
                document.location.href = '{{ route('mobile.order.overview') }}';
                            }
                    });
                }
            });
    }
});