글쓰기시 로딩화면 발생 후 저장하고 싶습니다.

1. 정확한 제품 또는 플러그인 이름

contact-form

 

2. 상세 내용

안녕하세요. contact-form 에서 신청하기 버튼 클릭시 로딩화면이 먼저 나오고 시간이 지나면 글쓰기 완료 하도록 하고싶은데,

setTimeout 함수를 쓰면 form 저장이 안되더라구요. 혹시 가능 한 방법이 있나요?

 

4. 수정한 코드 내역 (있다면)

/*
	 * 폼 유효성 검사
	 */
	var validation = '';
	kboard_fields_validation(form, function(fields){
		if(fields){
			validation = fields;
			jQuery(fields).focus();
		}
	});
	
	if(!validation){
		if(parseInt(jQuery('input[name=user_id]', form).val()) > 0){
			// 로그인 사용자의 경우 비밀글 체크시에만 비밀번호를 필수로 입력합니다.
			if(jQuery('input[name=secret]', form).prop('checked') && !jQuery('input[name=password]', form).val()){
				alert(kboard_localize_strings.please_enter_the_password);
				jQuery('input[name=password]', form).focus();
				return false;
			}
		}
		else{
			// 비로그인 사용자는 반드시 비밀번호를 입력해야 합니다.
			if(!jQuery('input[name=password]', form).val()){
				alert(kboard_localize_strings.please_enter_the_password);
				jQuery('input[name=password]', form).focus();
				return false;
			}
		}
		if(jQuery('input[name=captcha]', form).exists() && !jQuery('input[name=captcha]', form).val()){
			// 캡차 필드가 있을 경우 필수로 입력합니다.
			alert(kboard_localize_strings.please_enter_the_CAPTCHA);
			jQuery('input[name=captcha]', form).focus();
			return false;
		}
        
        if(!jQuery('input[name=terms]', form).prop('checked')){
			alert('개인정보 수집 및 이용목적에 동의해주세요.');
			jQuery('input[name=terms]', form).focus();
        
			return false;
		}

//코드 추가
        $('.mask').show();


        setTimeout(() => {
            closeLoadingWithMask();
            jQuery(form).data('validation', 'ok');
        }, 4000);

	}
	
	if(jQuery(form).data('validation') == 'ok'){
		jQuery(form).data('submitted', 'submitted');
		jQuery('[type=submit]', form).text(kboard_localize_strings.please_wait);
		jQuery('[type=submit]', form).val(kboard_localize_strings.please_wait);
		return true;
	}
	
	return false;
}

//함수 추가
function closeLoadingWithMask() {
    $('.mask').hide(); 
}

function kboard_radio_reset(obj){
	jQuery(obj).parents('.kboard-attr-row').find('input[type=radio]').each(function(){
		jQuery(this).prop('checked',false);
	});
}

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기