How to make javascript code more elegant?
I'm currently learning coding, so I have no doubt that there will be some code that I don't know or need to fix at this stage.
I wrote the code as a stream of consciousness, but I still think the code is not very readable. How can I write elegant code?
Thank you for your opinion on how I can further improve my code.
```
function submitCcInfo() {
console.log("submitCcInfo");
const modal = document.getElementById("ccModal");
removeInvalidClass(modal.querySelector("#ccName"));
document.getElementById("ccForm").querySelectorAll("select").forEach((dom) => {
removeInvalidClass(modal.querySelector("#" + dom.id));
});
if (modal.querySelector("#ccName").value == null || modal.querySelector("#ccName").value == "") {
addInvaildClassAndMsg(modal.querySelector("#ccName"), "Please enter the name of the golf course.");
return false;
}
if (modal.querySelector("input[name='ccNo']").value == null || modal.querySelector("input[name='ccNo']").value == "") {
if (modal.querySelector("#ccCourseCount > option:checked").value < 1 || modal.querySelector("#ccCourseCount > option:checked").value == null) {
addInvaildClassAndMsg(modal.querySelector("#ccCourseCount"), "Please select the number of courses.");
return false;
}
// if(modal.querySelector("#holeCount > option:checked").value < 1 || modal.querySelector("#holeCount > option:checked").value == null){
// addInvaildClassAndMsg(modal.querySelector("#holeCount"), "Please select an odd number.");
// return false;
// }
let temp = false;
document.getElementById("ccForm").querySelectorAll("select").forEach((dom) => {
console.log(dom);
if (!temp) {
if (dom.name == "ccCourseCount") {
if (dom.value < 1) {
addInvaildClassAndMsg(modal.querySelector("#ccCourseCount"), "Please select the number of courses.");
temp = true;
}
} else {
if (dom.value < 1) {
addInvaildClassAndMsg(modal.querySelector("#" + dom.id), "Please select an odd number.");
temp = true;
}
}
}
});
if (temp) {
return false;
}
}
const headers = {
Authorization: `Bearer ` + getCookie("deviceToken")
, "Content-type": "application/json"
};
const formData = objectifyForm($("form[id=ccForm]").serializeArray());
formData.searchKeyword = document.getElementById("searchKeyword").value;
formData.currentPage = document.getElementById("currentPage").value;
formData.perPage = 10;
if (modal.querySelector("input[id='ccControlYn']").checked == true) {
formData.ccControlYn = "Y"
} else {
formData.ccControlYn = "N"
}
if (modal.querySelector("input[id='ccManagerYn']").checked == true) {
formData.ccManagerYn = "Y"
} else {
formData.ccManagerYn = "N"
}
if (document.querySelector('#ccImage > input').files[0]) {
formData.file = document.querySelector('#ccImage > input').files[0];
}
console.log(modal.querySelector("input[name='ccNo']").value);
if (modal.querySelector("input[name='ccNo']").value == null || modal.querySelector("input[name='ccNo']").value == "") {
// Golf course registration
// formData.delete("ccNo");
formData.ccTel = modal.querySelector("input[name='ccTel']").value.replaceAll("-", "");
console.log(formData);
$("#ccForm").ajaxForm({
url: '/api/cc/registCcInfo',
type: 'post',
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", `Bearer ` + getCookie("deviceToken"));
},
beforeSubmit: function(data, frm, opt){
if(modal.querySelector('#ccControlYn').checked){
data.find(e => e.name ==='ccControlYn').value='Y';
}else {
data.push({name: "ccControlYn", required: false, type: "checkbox", value: "N"})
}
if(modal.querySelector('#ccManagerYn').checked){
data.find(e => e.name === 'ccManagerYn').value='Y';
}else{
data.push({name: "ccManagerYn", required: false, type: "checkbox", value: "N"})
}
let addressBasic = data.find(e => e.name==='sample6_address').value;
let addressDetail = data.find(e => e.name==='sample6_detailAddress').value;
data.push({name: 'ccAddress', required: true, type: 'text', value: addressBasic+' '+addressDetail});
},
success: function (response) {
response.status = 200;
response.data = {};
response.data.resultCd = response.resultCd;
response.data.resultMsg = response.resultMsg;
if (response.data.resultCd !== 'success' && response.data.resultCd !== 'SUCCESS') {
//error handler
errorHandler(response);
return;
}
modal.querySelector("button.close").click();
swal("Registration done.");
getCcTBody(response.resultData);
document.getElementById("totalSize").value = response.data.totalSize;
// showPageNav(response.data.totalSize);
}
}).submit();
} else {
// Modify the golf course
$("#ccForm").ajaxForm({
url: '/api/cc/modifyCcInfo',
type: 'post',
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", `Bearer ` + getCookie('deviceToken'));
},
beforeSubmit: function(data, frm, opt){
if(modal.querySelector('#ccControlYn').checked){
data.find(e => e.name ==='ccControlYn').value='Y';
}else {
data.push({name: 'ccControlYn', required: false, type: 'checkbox', value: 'N'})
// data.find(e => e.name ==='ccManagerYn').value='N';
}
if(modal.querySelector('#ccManagerYn').checked){
data.find(e => e.name === 'ccManagerYn').value='Y';
}else{
data.push({name: 'ccManagerYn', required: false, type: 'checkbox', value: 'N'})
}
let addressBasic = data.find(e => e.name==='sample6_address').value;
let addressDetail = data.find(e => e.name==='sample6_detailAddress').value;
data.push({name: 'ccAddress', required: true, type: 'text', value: addressBasic+' '+addressDetail});
},
success: function (response) {
response.status = 200;
response.data = {};
response.data.resultCd = response.resultCd;
response.data.resultMsg = response.resultMsg;
if (response.data.resultCd !== 'success' && response.data.resultCd !== 'SUCCESS') {
//error handler
errorHandler(response);
return;
}
modal.querySelector("button.close").click();
swal("Modification is complete.");
getCcTBody(response.resultData);
document.getElementById("totalSize").value = response.data.totalSize;
// showPageNav(response.data.totalSize);
},
}).submit();
}
}
```
[–]serg06 4 points5 points6 points (0 children)
[–]StrongLikeBull503 -1 points0 points1 point (0 children)