글 수정에 validation 체크 넣기

이 코드 오류나는 이유가?

대입연산자를 써야하는데 ( == )

할당연산자를 썼음 ( = )

우여곡절 끝에 글 수정 validation 성공

function update(id) {

	let data = $("#updateFrm").serialize();
	console.log("frm serialize하면 값이 원하는데로 나오나? : " + data);
	
	
	let title = $("#title").val();
	let content = $("#content").val();
	console.log("title", title)
	console.log("content", content)
	
	if(title == null || title == "") {
		alert("제목을 입력하세요.");
		return;
	} else if(content == null || content == "") {
		alert("내용을 입력하세요.");	
		return;
	}

	$.ajax({
		type : "PUT",
		url : "/updateProc",
		data : data,
		contentType : "application/x-www-form-urlencoded; charset=utf-8",
		// contentType : json으로 잘못 넣으면 바로 글 수정실패뜸
		dataType : "text"

	}).done(function(resp) {
		console.log(resp);
		if (resp == 1) {
			alert("글 수정 성공");
			location.href = "/detail/" + id;
		} else {
			alert("글 수정 실패");
		}

	}).fail(function(error) {
		alert("서버 문제");
	});

일단 onSubmit에 return validate() 넣어서 하는 방법은 폼 전송 방식에서만 되고

JS전송 방식은 안 먹힘 (submit을 안쓰니까), 그리고 id가 두개 있어서 못 찾는 버그가 있었는데 찾아서 해결했고 이제 하고싶은 것은 관심사를 분리해서 update 메소드에 validate메소드를 쓰면서 리팩토링을 해보고 싶은데 못하겠다

메소드 안에 하면 조건문에 return이 발동되서 메소드가 나가져서 해결할 수 있는데 메소드를 한 개 더 쓰면 그게 안 먹히니까 그게 고민임.

리팩토링 성공함

// ajax update 로직 정리할 것.

let validation = null;

function update(id) {

	let data = $("#updateFrm").serialize();
	console.log("frm serialize하면 값이 원하는데로 나오나? : " + data);

	validation = true;
	validate();
		
	console.log("validation 값", validation);
	if(validation == false) {
		alert("문제있음");
		return;
	}
	
	

	$.ajax({
		type : "PUT",
		url : "/updateProc",
		data : data,
		contentType : "application/x-www-form-urlencoded; charset=utf-8",
		// contentType : json으로 잘못 넣으면 바로 글 수정실패뜸
		dataType : "text"

	}).done(function(resp) {
		console.log(resp);
		if (resp == 1) {
			alert("글 수정 성공");
			location.href = "/detail/" + id;
		} else {
			alert("글 수정 실패");
		}

	}).fail(function(error) {
		alert("서버 문제");
	});

}

////////////////////////

function validate() {

	let title = $("#title").val();
	let content = $("#content").val();
	console.log("title", title)
	console.log("content", content)

	if (title == null || title == "") {
		alert("제목을 입력하세요.");
		validation = false;
		return;
	} else if (content == null || content == "") {
		alert("내용을 입력하세요.");
		validation = false;
		return;
	}
		return;
}

validation 변수를 전역변수로 설정해줘야 함 함수 두개에서 둘 다 참조할 수 있어야하니까