javascript - 如何使我的 JavaScript 代码更具动态性和可扩展性
问题描述
我正在构建一个应用程序并尝试将数据保存到我的数据库中。我有很多表单,但它们都发送到同一个端点,我的代码看起来又长又无聊,而且我觉得将来很难维护,所以它们是一种我可以缩短代码的方法,比如创建一个函数自动提交表单以防我想向我的应用程序添加更多表单,以使其动态和可扩展。
这是代码
$('.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'))
推荐阅读
- outlook-web-addins - Outlook 2016 的旁加载加载项
- python - 自 ElasticSearch 映射以来 Spark 映射中的 PyPark 错误
- python - 默认情况下,在 Python 中安装“可选”依赖项(setuptools)
- android - apksigner, zipalign and jarsigner not working as expected
- html - Make image scale next to a div inside a div
- python - Is it possible to generate a pytest HTML report on a timeout?
- python - What does sum(1 for c in sentence if c.isupper())) mean in non programming terms
- sql - LEFT JOIN help in sql
- swift - Swift 4 - Snapshotting error with custom UIView
- android - Buildfire: How to detect user device? iOS vs Android?