게시글 작성시 최소 최대 글자수 체크 스크립트 추가

This commit is contained in:
chicpro
2013-08-26 18:49:44 +09:00
parent ac0be524ce
commit d0662d53b7
5 changed files with 149 additions and 60 deletions

View File

@ -198,6 +198,17 @@ if ($config['cf_kcpcert_use'] != '' && !$is_admin) {
}
}
// 글자수 제한 설정값
if ($is_admin || $board['bo_use_dhtml_editor'])
{
$write_min = $write_max = 0;
}
else
{
$write_min = (int)$board['bo_write_min'];
$write_max = (int)$board['bo_write_max'];
}
$g4['title'] = $board['bo_subject']." ".$title_msg;
$is_notice = false;

View File

@ -107,9 +107,15 @@ echo $option_hidden;
<tr>
<th scope="row"><label for="wr_content">내용<strong class="sound_only">필수</strong></label></th>
<td class="wr_content">
<!-- 최소/최대 글자 수 사용 시 --><p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 초과, 최대 <strong><?php echo $write_max; ?></strong>글자 미만까지 글을 쓰실 수 있습니다.</p>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<!-- 최소/최대 글자 수 사용 시 --><div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
@ -157,34 +163,19 @@ echo $option_hidden;
</form>
<script>
<?php
// 관리자라면 분류 선택에 '공지' 옵션을 추가함
if ($is_admin)
{
echo '
if (ca_name_select = document.getElementById("ca_name")) {
ca_name_select.options.length += 1;
ca_name_select.options[ca_name_select.options.length-1].value = "공지";
ca_name_select.options[ca_name_select.options.length-1].text = "공지";
}';
}
?>
<?php if($write_min || $write_max) { ?>
// 글자수 제한
var char_min = parseInt(<?php echo $write_min; ?>); // 최소
var char_max = parseInt(<?php echo $write_max; ?>); // 최대
check_byte("wr_content", "char_count");
with (document.fwrite)
{
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u") {
ca_name.value = "<?php echo isset($write['ca_name'])?$write['ca_name']:''; ?>";
}
}
$(function() {
$("#wr_content").on("keyup", function() {
check_byte("wr_content", "char_count");
});
});
<?php } ?>
function html_auto_br(obj)
{
if (obj.checked) {
@ -236,6 +227,20 @@ function fwrite_submit(f)
return false;
}
if (document.getElementById("char_count")) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte("wr_content", "char_count"));
if (char_min > 0 && char_min > cnt) {
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
}
else if (char_max > 0 && char_max < cnt) {
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
document.getElementById("btn_submit").disabled = "disabled";

View File

@ -107,9 +107,15 @@ echo $option_hidden;
<tr>
<th scope="row"><label for="wr_content">내용<strong class="sound_only">필수</strong></label></th>
<td class="wr_content">
<!-- 최소/최대 글자 수 사용 시 --><p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 초과, 최대 <strong><?php echo $write_max; ?></strong>글자 미만까지 글을 쓰실 수 있습니다.</p>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<!-- 최소/최대 글자 수 사용 시 --><div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
@ -157,34 +163,19 @@ echo $option_hidden;
</form>
<script>
<?php
// 관리자라면 분류 선택에 '공지' 옵션을 추가함
if ($is_admin)
{
echo '
if (ca_name_select = document.getElementById("ca_name")) {
ca_name_select.options.length += 1;
ca_name_select.options[ca_name_select.options.length-1].value = "공지";
ca_name_select.options[ca_name_select.options.length-1].text = "공지";
}';
}
?>
<?php if($write_min || $write_max) { ?>
// 글자수 제한
var char_min = parseInt(<?php echo $write_min; ?>); // 최소
var char_max = parseInt(<?php echo $write_max; ?>); // 최대
check_byte("wr_content", "char_count");
with (document.fwrite)
{
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u") {
ca_name.value = "<?php echo isset($write['ca_name'])?$write['ca_name']:''; ?>";
}
}
$(function() {
$("#wr_content").on("keyup", function() {
check_byte("wr_content", "char_count");
});
});
<?php } ?>
function html_auto_br(obj)
{
if (obj.checked) {
@ -236,8 +227,24 @@ function fwrite_submit(f)
return false;
}
if (document.getElementById("char_count")) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte("wr_content", "char_count"));
if (char_min > 0 && char_min > cnt) {
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
}
else if (char_max > 0 && char_max < cnt) {
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>

View File

@ -123,9 +123,15 @@ echo $option_hidden;
<tr>
<th scope="row"><label for="wr_content">내용<strong class="sound_only">필수</strong></label></th>
<td class="wr_content">
<!-- 최소/최대 글자 수 사용 시 --><p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 초과, 최대 <strong><?php echo $write_max; ?></strong>글자 미만까지 글을 쓰실 수 있습니다.</p>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<!-- 최소/최대 글자 수 사용 시 --><div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
@ -173,6 +179,19 @@ echo $option_hidden;
</form>
<script>
<?php if($write_min || $write_max) { ?>
// 글자수 제한
var char_min = parseInt(<?php echo $write_min; ?>); // 최소
var char_max = parseInt(<?php echo $write_max; ?>); // 최대
check_byte("wr_content", "char_count");
$(function() {
$("#wr_content").on("keyup", function() {
check_byte("wr_content", "char_count");
});
});
<?php } ?>
function html_auto_br(obj)
{
if (obj.checked) {
@ -223,6 +242,20 @@ function fwrite_submit(f)
return false;
}
if (document.getElementById("char_count")) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte("wr_content", "char_count"));
if (char_min > 0 && char_min > cnt) {
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
}
else if (char_max > 0 && char_max < cnt) {
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
}
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";

View File

@ -120,9 +120,15 @@ echo $option_hidden;
<tr>
<th scope="row"><label for="wr_content">내용<strong class="sound_only">필수</strong></label></th>
<td class="wr_content">
<!-- 최소/최대 글자 수 사용 시 --><p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 초과, 최대 <strong><?php echo $write_max; ?></strong>글자 미만까지 글을 쓰실 수 있습니다.</p>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<!-- 최소/최대 글자 수 사용 시 --><div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrp"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
@ -170,6 +176,19 @@ echo $option_hidden;
</form>
<script>
<?php if($write_min || $write_max) { ?>
// 글자수 제한
var char_min = parseInt(<?php echo $write_min; ?>); // 최소
var char_max = parseInt(<?php echo $write_max; ?>); // 최대
check_byte("wr_content", "char_count");
$(function() {
$("#wr_content").on("keyup", function() {
check_byte("wr_content", "char_count");
});
});
<?php } ?>
function html_auto_br(obj)
{
if (obj.checked) {
@ -220,6 +239,20 @@ function fwrite_submit(f)
return false;
}
if (document.getElementById("char_count")) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte("wr_content", "char_count"));
if (char_min > 0 && char_min > cnt) {
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
}
else if (char_max > 0 && char_max < cnt) {
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
}
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";