열라 바쁜 가끔 빈곤 곰돌이

가끔 셀렉트박스를 3개정도 놔두고 하나를 선택하면 다른 하나의 값을 초기화.. 내지는 특정한 값으로 이동시켜야 할 경우가 있습니다.



function resetSel(selName) {
	selval = jQuery("#"+selName+" option:selected").val();
	if(selval.length>0) {
		if(selName == "districtPlan") {
			jQuery("#etc_law option:eq(0)").attr("selected", "selected");
			jQuery("#district option:eq(0)").attr("selected", "selected");
		}
		if(selName == "etc_law") {
			jQuery("#districtPlan option:eq(0)").attr("selected", "selected");
			jQuery("#district option:eq(0)").attr("selected", "selected");
		}
		if(selName == "district") {
			jQuery("#districtPlan option:eq(0)").attr("selected", "selected");
			jQuery("#etc_law option:eq(0)").attr("selected", "selected");
		}
	}
}


selName은 입력받은 값입니다.

A를 선택한 경우에 B,C의 값을 0번째(제일위)를 선택한 것으로 만듭니다.


생각보다 간단한 것들인데 제가 보기에 항상 예시가 없어서 헷갈려서 적어놓습니다.

Comment +0

가끔 생각해보면 내가 해보려고 하는건 인터넷에 없을까 하는 생각이 듭니다.


오늘 하던 팁은 테이블1에서 하나의 체크박스를 건드리면 테이블2에서 해당 값으로 시작하는 데이터들의 체크박스를 해제하는 것입니다.



function chkSel2(selVal) {
	//넘겨받은 selVal을 가지고 buildtype2에서 해당값을 갖는 체크박스가 체크되어 있는지 찾습니다.
	//체크가 되어 있으면 true를 반환할거고 아니면 false를 반환하겠죠.
	var chkYn = jQuery("input[name=buildtype2][value='"+selVal+"']").is(":checked");

	//그렇게 체크된 값을 가지고, buildtype3의 모든 값들을 찾기 시작합니다.
	jQuery("input[name=buildtype3]").each(function(index, value) {
		//이제 each라는 반복문에 대해서는 굳이 설명할 필요는 없겠죠.
		//현재 값을 chgVal에 저장합니다.
		var chgVal = this.value;

		//chgVal 과 selVal이 같고 체크가 되어 있다면
		if(chgVal == selVal && chkYn == true) {
			//jQuery에게 buildtype3의 체크박스들의 chgVal을 value로 갖고 있는 체크박스를 체크하도록 시킵니다.
			jQuery("input[name=buildtype3][value='"+chgVal+"']").attr("checked",true);
		} else if(chgVal == selVal && chkYn == false) {
			//true false에 따라 체크박스가 해제된거라면 해당값은 체크를 해제하기 시작하겠죠.
			jQuery("input[name=buildtype3][value='"+chgVal+"']").attr("checked",false);
		}
	});
}

buildtype2라고 이름지어진 체크박스의 무리들이 있습니다.

이 중에 넘겨받은 selVal 이라는 값을 갖는 체크박스가 체크 되었는지 체크합니다.


이렇게 하면 서로 다른 테이블의 값들을 찾을수 있습니다.

말이 테이블이라고 했을뿐 input type의 name으로 체크를 하므로 여러 다양한 상황에서 사용가능할 것입니다.


Comment +0

//실행을 마치고 테이블을 정렬해주는 기능
//args는 테이블 id입니다.
function tablesort(args) {
	var buildtype = jQuery(args).children('tr').get();
	buildtype.sort(function(a,b) {
		var val1 = jQuery(a).text().toUpperCase();
		var val2 = jQuery(b).text().toUpperCase();
		return(val1val2)?1:0;
	});

	jQuery.each(buildtype,function(index,row){
		jQuery(args).append(row);
	});
}
//여기까지 입니다. 코딩 오류인지 뒤에 자꾸 이상한 글이 나와요.;;;;

Comment +0

jQuery로 계속 append된 테이블에 중복된 값을 찾아서 만약 중복된 값이 있다면 해당 row를 삭제합니다.

원래 소스는 rowspan하는 건데... 삭제용으로 수정하였습니다.

//테이블에 중복된 값을 찾아서 삭제하기
function delTableRow(tableId) {
	//입력받은 tableId에서 tr을 찾아서 저장합니다.
	var rows = jQuery(tableId).children('tr');

	for (var i = 0; i < rows.length; i++ ) {
		var row = rows[i]; //현재 row를 저장합니다.
		var prevrow = rows[i-1]; //비교하기 위한 현재 row의 이전 row를 저장합니다.
		var removeRow = jQuery(row).find("td"); //먼저 현재 row를 삭제할 row로 지정하고 아래 조건식에서 값이 같은경우 삭제하도록 하는겁니다.
		var tdList = jQuery(row).find("td").eq(0).text(); // 현재 row의 데이터를 저장합니다.
		var tdListPrev = jQuery(prevrow).find("td").eq(0).text(); // 이전 row의 데이터를 저장합니다.

		//if문으로 이전 row의 데이터와 현재 row의 데이터가 동일하다면 삭제합니다.
		if(tdList == tdListPrev ) {
			jQuery(removeRow).parent().remove();
		}
	}
}


만약 데이터가 중구난방으로 입력된다면 (정렬안된상태) 정렬을 먼저 해야 합니다.

Comment +0