javascript - 如何使我的 JavaScript 代码更加动态和可扩展

标签 javascript jquery

我正在构建一个应用程序并尝试将数据保存到我的数据库中。我有很多表单,但它们都发送到同一个端点,我的代码看起来又长又无聊,我觉得将来很难维护,所以他们是我可以缩短代码的一种方法,比如创建一个函数,如果我想向我的应用程序添加更多表单,自动提交表单,使其动态且可扩展。

这是代码

    $('.stepNextBtn1').click(function(){  
    $('#FuielsImg').fadeIn()      
    $.ajax({
        url: '/nexpost',
        type: 'POST',
        data: {
            '_token': csrf,
            'value': $('.AuthenticationKe').val(),
            'key': 'AuthenticationKey'
        },
        dataType: 'JSON',
        success: function( data ) {
            $('#FuielsImg').fadeOut()      
            if(data.success){
                $('.ShowAutCode').fadeOut()
                $('.AuthenticationKe').val('')
                $('.stepfield1').slideUp('slow')
                $('.stepfield2').slideDown('slow')
            }  else{
                $('.ShowAutCode').fadeIn()
            }      
        } 
    })
})
$('.stepNextBtn2').click(function(){
    $('#FuielsImg').fadeIn()      
    $.ajax({
        url: '/nexpost',
        type: 'POST',
        data: {
            '_token': csrf,
            'value': $('.COTcode').val(),
            'key': 'COTcode'
        },
        dataType: 'JSON',
        success: function( data1 ) {
            $('#FuielsImg').fadeOut()
            if(data1.success){
                $('.ShowCotCode').fadeOut()
                $('.COTcode').val('')
                $('.stepfield2').slideUp('slow')
                $('.stepfield3').slideDown('slow')
            }  else{
                $('.ShowCotCode').fadeIn()
            }      
        } 
    })
})
$('.stepNextBtn3').click(function(){
    $('#FuielsImg').fadeIn()      
    $.ajax({
        url: '/nexpost',
        type: 'POST',
        data: {
            '_token': csrf,
            'value': $('.TAXcode').val(),
            'key': 'TAXcode'
        },
        dataType: 'JSON',
        success: function( data2 ) {
            $('#FuielsImg').fadeOut()
            if(data2.success){
                $('.ShowTaxCode').fadeOut()
                $('.TAXcode').val('')
                $('.stepfield3').slideUp('slow')
                $('.stepfield4').slideDown('slow')
            }  else{
                $('.ShowTaxCode').fadeIn()
            }      
        } 
    }) 
})

谢谢,这对我来说真的很重要

最佳答案

创建一个函数来完成所有繁重的工作

function clickHandler(p1, p2, p3, p4, p5) {
    return function() {
        $('#FuielsImg').fadeIn()
        $.ajax({
            url: '/nexpost',
            type: 'POST',
            data: {
                '_token': csrf,
                'value': $(p1).val(),
                'key': p2
            },
            dataType: 'JSON',
            success: function(data) {
                $('#FuielsImg').fadeOut()
                if (data.success) {
                    $(p3).fadeOut()
                    $(p1).val('')
                    $(p4).slideUp('slow')
                    $(p5).slideDown('slow')
                } else {
                    $(p3).fadeIn()
                }
            }
        });
    };
}
$('.stepNextBtn1').click(clickHandler('.AuthenticationKe', 'AuthenticationKey', '.ShowAutCode', '.stepfield1', '.stepfield2'))

关于javascript - 如何使我的 JavaScript 代码更加动态和可扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663169/

相关文章:

javascript - 从 ASPX CodeBehind 执行 JS 代码

javascript - 使用纯 Javascript 对象作为 Ember 模型

javascript - 动态大小和 AngularJS 模型

使用 document.location.href = ="slide"时,jquery 移动数据转换 ""不起作用;已插入 href =""

javascript - jQuery click() 触发 HTML 的 OnClick 属性

javascript - 按值对 JSON 进行排序

javascript - 如何使用 typescript 继承 native react 组件?

javascript - 如何使用 CoffeeScript 在同一个循环中创建两个数组?

javascript - 销毁数据表以重用

jquery - 使用边界半径从左向右移动的 slider 不保持边界半径