dbms/app/Views/templates/admin/form_content_top.php
2025-07-04 10:05:14 +09:00

49 lines
1.9 KiB
PHP

<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/js/<?= $viewDatas['layout'] ?>/form.js" referrerpolicy="origin"></script>
<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
<link rel="stylesheet" href="/assets/tagify/dist/tagify.css">
<script src="/assets/tagify/dist/tagify.js"></script>
<?php foreach ($viewDatas['individualStylesheets'] as $css): ?>
<link href="/css/<?= $viewDatas['layout'] ?>/<?= $css ?>" media="screen" rel="stylesheet" type="text/css" />
<?php endforeach ?>
<?php foreach ($viewDatas['individualScripts'] as $js): ?>
<script src="/js/<?= $viewDatas['layout'] ?>/<?= $js ?>" referrerpolicy="origin"></script>
<?php endforeach ?>
<script>
const input = document.querySelector('#domain');
const errorBox = document.getElementById('domain-errors');
const tagify = new Tagify(input, {
enforceWhitelist: false, // 자유 입력 허용
whitelist: [], // 자동완성 후보
duplicates: false, // 중복 제거
delimiters: ", ", // 엔터나 콤마로 구분
pattern: /^[a-zA-Z0-9.-]+\.[a-z]{2,}$/ // 기본 도메인 형식
});
// ✅ 입력된 태그가 추가될 때 AJAX 검증
tagify.on('add', async e => {
const domain = e.detail.data.value;
// 서버로 도메인 유효성 검증 요청
const res = await fetch('/admin/equipment/part/domain/validate', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
domain
})
});
const result = await res.json();
if (!result.valid) {
// 유효하지 않으면 해당 태그 제거
tagify.removeTag(domain);
errorBox.innerText = `"${domain}" 은(는) 이미 등록되었거나 유효하지 않습니다.`;
} else {
errorBox.innerText = '';
}
});
</script>