설문조사용 Script & HTML
페이지 정보
작성자 서방님 댓글 0건 조회 195회 작성일 06-09-14 13:58본문
<script>
function targetUserSelect() {
var formName = "targetUser";
var windowW = "660";
var windowH = "432";
var w = screen.availWidth;
var h = screen.availheight;
var left = (w - windowW)/2;
var top = (h - windowH)/2;
window.open("./targetUserSelectForm.jsp?formName="+formName+"&userListReset="+document.form1.targetUserId.value,"freeboardUserSelectWindow","width="+windowW+", height="+windowH+", left="+left+", top="+top+", scrollbars=no, status=no, resizable=no");
}
</script>
<html>
<head><title>설문 조사 작성</title>
<LINK rel="stylesheet" type="text/css" href="./../style/style.css"></LINK>
</style>
</head>
<body bgcolor='cdcdcd'>
<table border=0 cellpadding=0 cellspacing=0 width=100% height=100%>
<form name="form1" method="post" action="makeRePollAct.jsp">
<tr valign='top'>
<td width="100%">
<br>
<br><br>
<font color='blue'>* 질문항목을 추가 하실수 있습니다.</font> <input type='button' value='질문 추가' onClick="javascript:addQustion();"><br><br>
<!-- 설문 Step1 -->
<div id="question">
</div>
<script>
var index = 0; //증가만함
var countNum = 0; //증가 혹은 감소
function addQustion(typ1Value , type2Value , title , qArray)
{
var fieldset = document.createElement("fieldset");
fieldset.id = "fld" + index;
var legend = document.createElement("legend");
var table = document.createElement("table");
var tr = table.insertRow();
var td = tr.insertCell();
//중복답변 radio button
//1
/**var radio = document.createElement("input");
radio.type = 'radio';
radio.value = "0";
var p = document.createElement("font");
p.innerHTML = "중복답변 허용 ";
p.size = "2pt";
td.appendChild(radio);
td.appendChild(p);
//2
var radio = document.createElement("input");
radio.type = 'radio';
radio.value = "1";
var p = document.createElement("font");
p.innerHTML = "중복답변 불가 ";
p.size = "2pt";
td.appendChild(radio);
td.appendChild(p);**/
tmpStr = td.innerHTML;
tmpStr += "속성 : <select name='type1'>";
if(type2Value == "2")
{
tmpStr += "<option value='2' selected>중복답변 허용</option>";
tmpStr += "<option value='1'>중복답변 불가</option>";
}
else
{
tmpStr += "<option value='2'>중복답변 허용</option>";
tmpStr += "<option value='1' selected>중복답변 불가</option>";
}
tmpStr += "</select>";
td.innerHTML = tmpStr;
//객주관신 선택 select box
/**
var select = document.createElement("select");
//1
var oOption = document.createElement("option");
select.options.add(oOption);
oOption.innerHTML = "객관식";
oOption.value = "0";
//2
var oOption = document.createElement("option");
select.options.add(oOption);
oOption.innerHTML = "객/주 관식 혼합";
oOption.value = "1";
//3
var oOption = document.createElement("option");
select.options.add(oOption);
oOption.innerHTML = "주관식";
oOption.value = "2";
td.appendChild(select);
**/
tmpStr = td.innerHTML;
tmpStr += "<select name='type2' id='qSelect"+ index +"' onChange="javascript:changedType(document.all.exam"+index+" , this.value);">"
if (type2Value == "2")
{
tmpStr += "<option value='1'>객관식</option>"
tmpStr += "<option value='2' selected>객/주 관식 혼합</option>"
tmpStr += "<option value='3'>주관식</option>"
}
else if (type2Value == "3")
{
tmpStr += "<option value='1'>객관식</option>"
tmpStr += "<option value='2'>객/주 관식 혼합</option>"
tmpStr += "<option value='3' selected>주관식</option>"
}
else
{
tmpStr += "<option value='1' selected>객관식</option>"
tmpStr += "<option value='2'>객/주 관식 혼합</option>"
tmpStr += "<option value='3'>주관식</option>"
}
tmpStr += "</select>"
td.innerHTML = tmpStr;
//질문 input=text
var tr = table.insertRow();
var td = tr.insertCell();
var lable = document.createElement("font");
lable.size = "2pt";
lable.innerHTML = "질문 : ";
td.appendChild(lable);
var qInput = document.createElement("input");
qInput.id = "qsit_title";
if(title != null && title != undefined)
qInput.value = title;
qInput.style.width = '400';
td.appendChild(qInput);
var addExample = "<input type='button' value='문항추가' onClick="javascript:addExam(document.all.exam"+index+");">";
var tmpStr = td.innerHTML;
tmpStr = tmpStr + addExample;
td.innerHTML = tmpStr;
//문항입력될 장소.
var tr = table.insertRow();
var td = tr.insertCell();
var p = document.createElement("p");
p.style.marginLeft = '44';
p.id = 'exam'+index;
p.tmpAtt = index;
td.appendChild(p);
//legend태그안의 내용
var font = document.createElement("font");
font.size = "2pt";
font.color = "red";
font.innerHTML = "<b>질문 "+ (parseInt(countNum) + 1) +" </b>";
legend.appendChild(font);
var tmpStr = legend.innerHTML;
var input = "<input type='button' value='삭제' onClick="javascript:delFieldset('fld"+ index +"');">";
tmpStr = tmpStr + input;
legend.innerHTML = tmpStr;
fieldset.appendChild(legend);
fieldset.appendChild(table);
question.appendChild(fieldset);
//문항 default 4개 추가
if(title == null || title == undefined || title == "")
{
addExam(eval("document.all.exam"+index));
addExam(eval("document.all.exam"+index));
addExam(eval("document.all.exam"+index));
addExam(eval("document.all.exam"+index));
}
else
{
if(qArray != undefined)
{
for (var i = 0; i < qArray.length ; i++)
{
addExam(eval("document.all.exam"+index) , qArray[i]);
}
}
}
index++;
countNum++;
}
//타입변경
function changedType(inForm , inValue)
{
if(inValue == "3")
{
inForm.innerHTML = "";
}
}
//질문삭제
function delFieldset(inForm)
{
if(confirm("해당질문을 삭제하시겠습니까?"))
{
var fldArr = question.getElementsByTagName("fieldset");
for(var i = 0 ; i < fldArr.length ; i++)
{
if(fldArr[i].id == inForm)
{
question.removeChild(fldArr[i]);
countNum--;
}
}
//레이블 넘버링 다시!!
var fldArr = question.getElementsByTagName("fieldset");
for(var i = 0 ; i < fldArr.length ; i++)
{
var legend = fldArr[i].getElementsByTagName("legend");
var font = legend[0].getElementsByTagName("font");
font[0].innerHTML = "<b>질문"+ (i+1) +" </b>";
}
}
}
//문항추가
function addExam(inForm , inValue)
{
var qSelect = eval("document.all.qSelect" + inForm.tmpAtt);
if(qSelect.options[qSelect.selectedIndex].value == "3")
{
alert("주관식 질문에서는 문항을 추가하실수 없습니다.");
return;
}
var inputArr = inForm.getElementsByTagName("input");
var tmpIndex = 0;
if(inputArr != undefined)
{
for(var i = 0 ; i < inputArr.length ; i++)
{
if(inputArr[i].type == "text")
tmpIndex++;
}
}
else
{
tmpIndex = 0;
}
var div = document.createElement("div");
div.id = inForm.id + "_" + (tmpIndex+1);
var font = document.createElement("font");
//font.innerHTML = "문항 "+ (parseInt(tmpIndex) + 1) +" : ";
font.innerHTML = "문항 : ";
font.size = "2pt";
div.appendChild(font);
var input = document.createElement("input");
input.id = 'qsitd_detail';
if(inValue != null && inValue != undefined)
input.value = inValue;
input.style.width = '350';
div.appendChild(input);
//문항삭제버튼
var btn = "<input type='button' value='삭제' onClick="javascript:delExam("+inForm.id+" , '"+inForm.id + "_" + (tmpIndex+1)+"');">";
var tmpStr = div.innerHTML;
tmpStr = tmpStr + btn;
div.innerHTML = tmpStr;
inForm.appendChild(div);
}
//문항삭제
function delExam(inForm , divID)
{
var div = inForm.getElementsByTagName("div");
for(var i = 0 ; i < div.length ; i++)
{
if(div[i].id == divID)
inForm.removeChild(div[i]);
if(divID == null || divID == undefined)
inForm.removeChild(div[i]);
}
//문항레이블 넘버링 다시
/**
var font = inForm.getElementsByTagName("font");
for(var i = 0 ; i < font.length ; i++)
{
alert(font[i].innerHTML);
font[i].innerHTML = "asdfasdfadsf";
}
**/
}
function goSubmit()
{
var frm = document.form1;
frm.action = 'makeRePollAct.jsp';
//각각의 질문의 문항갯수를 세어 업데이트
var fieldset = question.getElementsByTagName("fieldset");
for(var i = 0 ; i < fieldset.length ; i++)
{
var input = fieldset[i].getElementsByTagName("input");
var countNum = 0;
for(var k = 0 ; k < input.length ; k++)
{
if(input[k].id == "qsit_title")
input[k].name = "qsit_title";
if(input[k].id == "qsitd_detail")
input[k].name = "qsitd_detail";
if(input[k].id == "qsitd_detail")
countNum++;
}
var input2 = document.createElement("input");
input2.name = "quesition_count";
input2.value = countNum;
input2.type = "hidden";
fieldset[i].appendChild(input2);
}
//입력값 유효성검사
if(!checkValidation(frm.qsqs_title , 'N' , 300 , "설문제목을 입력하여주십시오." , "설문제목은 최대150자(한글기준)까지 입력 하실 수 있습니다.")) return;
var input = frm.getElementsByTagName("input");
for(var i = 0 ; i < input.length ; i++)
{
//질문 qsit_title
if(input[i].id == "qsit_title")
{
if(!checkValidation(input[i] , 'N' , 300 , "질문을 입력하여주십시오." , "질문은 최대150자(한글기준)까지 입력 하실 수 있습니다.")) return;
}
//문항 qsitd_detail
if(input[i].id == "qsitd_detail")
{
if(!checkValidation(input[i] , 'N' , 300 , "문항 내용을 입력하여주십시오." , "문항은 최대150자(한글기준)까지 입력 하실 수 있습니다.")) return;
}
}
if (frm.targetUserId.value == "")
{
frm.targetUserId.value = "'G:All'";
}
if (frm.targetUserId.value == "'G:All'")
{
if (confirm("조사 대상자가 전사원인지 확인 해 주시기 바랍니다.nn계속 진행 하시겠습니까?"))
{
frm.submit();
}
else return;
}
frm.submit();
}
</script>
</td>
</tr>
</form>
</table>
</body>
</html>
<p align='center'>
<input type='button' value="등록" style="width:100%;height:30"onClick="javascript:goSubmit();">
</p>
<script>
var frm = document.form1;
//신규등록 초기화
addQustion();
</script>
<script>
function trim(str) //문자열 trim 처리
{
var count = str.length;
var len = count;
var st = 0;
while ((st < len) && (str.charAt(st) <= ' ')) {
st++;
}
while ((st < len) && (str.charAt(len - 1) <= ' ')) {
len--;
}
return ((st > 0) || (len < count)) ? str.substring(st, len) : str ;
}
function strLength(field)//필드(String) 길이 관련
{
field.value = trim(field.value);
var Length = 0;
var Nav = navigator.appName;
var Ver = navigator.appVersion;
var IsExplorer = false;
var ch;
if ( (Nav == 'Microsoft Internet Explorer') && (Ver.charAt(0) >= 4) ) {
IsExplorer = true;
}
if(IsExplorer) {
for(var i = 0 ; i < field.value.length; i++) {
ch = field.value.charAt(i);
if ((ch == "n") || ((ch >= "ㅏ") && (ch <= "히")) ||
((ch >="ㄱ") && (ch <="ㅎ"))) { //한글일경우 2byte씩 계산
Length += 2;
} else {
Length += 1;
}
}
} else {
Length = field.value.length ;
}
return Length;
}
function checkValidation(inForm , nullAble , maxSize , nullMsg , maxMsg)
{
if(nullAble == "N")
{
if(strLength(inForm) == 0)
{
inForm.focus();
alert(nullMsg);
return false;
}
}
if(strLength(inForm) > maxSize)
{
inForm.focus();
inForm.select();
alert(maxMsg);
return false;
}
return true;
}
</script>
댓글목록
등록된 댓글이 없습니다.