input 텍스트박스 동적추가
텍스트박스를 동적으로 추가, 삭제 할 수 있는 함수다.
예제를 구해다가 내 의도에 맞게 수정하여 썼다.
동적추가할때 name값을 동일하게 주면
ASP에서 request("name변수")를 했을때 자동으로 ","로 구분되어 배열변수로 저장된다.
물론, 항목이 1개일땐 그냥변수로 저장된다.
해서 배열일때와 아닐때 등을 처리해야 했다.
var oCell1 = oRow.insertCell(); 의 Cell1은 1열을 Insert한단 뜻이다.
폼검사도 name이 있을때, 없을때, 배열인지 구분해서 처리해야 했다.
* 내가 처리한 부분
- 버튼을 클릭하여 항목을 모두 삭제해서 name이 없을때
- 항목추가 최대갯수 제한
- 폼검사 -> name값, 배열변수인지 구분해서 처리
//텍스트박스 동적추가
function addRow() {
var form = eval("document.signform");
if( form.getAttribute('fr_nm') ) //fr_nm이 널일때 처리. name에 fr_nm이 있는지 체크
{
if (form.fr_nm.length >= 10) //갯수를 최대 10개로 제한
{
alert("항목은 최대 10개까지 가능합니다.");
form.fr_nm(9).focus();
return;
}
}
var oRow = nm_dyntb.insertRow();
oRow.onmouseover=function(){nm_dyntb.clickedRowIndex=this.rowIndex};
var oCell1 = oRow.insertCell();
var oCell2 = oRow.insertCell();
oCell1.innerHTML = "";
oCell2.innerHTML = "포함문자열 <input type=text size=14 maxlength=14 name=fr_nm value=\"\" onKeyPress=\"Check_SChar(this);\">, <input type=text size=2 maxlength=2 name=fr_nm_cnt value=\"\" onKeyPress=\"Check_SChar(this);\"> 건 <input type=button value=\" X \" onClick=\"delRow()\">";
document.recalc();
}
//텍스트박스 동적삭제
function delRow() {
nm_dyntb.deleteRow(nm_dyntb.clickedRowIndex);
}
/* 폼검사 함수에 처리해야 할 부분이다. */
var form = eval("document.signform");
if( form.getAttribute('fr_nm') ) //name에 fr_nm이 있을때만 수행
{
if (isArray(form.fr_nm) ) //배열이면,
{
for (i=0; i<form.fr_nm.length; i++) //배열 동적텍스트박스는 루프돌면서 처리.
{
//배열변수 폼검사 처리
}
}
else //배열이 아니면 한번만 처리.
{
//폼검사 처리
}
}
'javascript' 카테고리의 다른 글
encodeURIComponent (0) | 2010.12.30 |
---|---|
체크박스 전체선택,해제 (0) | 2010.07.24 |