레이블이 jQuery인 게시물을 표시합니다. 모든 게시물 표시
레이블이 jQuery인 게시물을 표시합니다. 모든 게시물 표시

2019년 5월 3일 금요일

jQuery 기초문법 정리중...


input type="radio" 에서 선택 된 값.
선택 된 값이 없으면 undefined.

1
$('input[name="name"]:checked').val()
cs




input type="checked" 에서 해당 id의 체크여부.

true, false 반환
1
$('#id').is(":checked")
cs



같은 name의 체크박스가 여러개일 때 반복한다.
1
2
3
4
$('input[name="name"]').each(function(idx){
    alert(this.checked); //true, false
    alert(this.value);//value
});
cs



data.list라는 json object를 반복해서 item.이름 으로 value값을 추출한다.
$.each(data.list, function(index, item){
    item.name
});



업데이트 예정...

2017년 5월 24일 수요일

dialog + iframe 을 이용한 팝업, 레이어



예전부터 dialog안에 iframe 넣어서 사용했었는데,

이번에 프로젝트에서 나름대로 조금 업그레이드(?)해서 공통으로 만들어 보았습니다.

파라미터는 id, url, width, height, params

dialog를 띄워서 iframe에 submit을 합니다.

$('<div id="'+id+'"><iframe name="'+id+'" src="" style="width:'+width+'px;height:'+height+'px;border:none;" frameBorder="0" /></div>').dialog({ 
autoOpen : true, 
modal : true, 
resizable : true, 
height: 'auto', 
//title : title
width : 'auto', 
position : { my: "center", at: "center", of: window }, 
open : function(event, ui){ 
$(this).dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove();//title 삭제 
var tempForm = document.createElement("form"); 
$(tempForm).attr("action", url).attr("method", "post").attr("target", id); 
for( var paramName in params ){ 
$(tempForm).append('<input type="hidden" name="'+paramName+'" value="'+params[paramName]+'" />'); 
document.body.appendChild(tempForm); 
tempForm.submit(); 
document.body.removeChild(tempForm); 
}, 
close : function(){ 
$(this).dialog('destroy').remove(); 
});

title 속성을 주면 팝업상단에 titlebar가 생기는데 드래그도 가능합니다.

하지만 기본 titlebar 디자인이 별로라서 일단 제외시켰습니다.


다음은 닫기 기능입니다.

dialog 띄울 때의 id를 파라미터로 줍니다.
$('#'+id).dialog('close');

결과





jQuery ajaxSubmit, jquery.form.js


ajaxForm 이나 ajaxSubmit 을 사용하기 위해서 jquery.form.js 파일이 필요하다.

아래 링크에서 다운로드받자.

malsup.com/jquery/form/

Download 탭에서

jquery.form.js or jquery.form.min.js 둘 중 아무거나 다운받고 프로젝트 소스에 위치시킨다.

사용법은 $.ajax 와 유사하다.

$('#testForm').ajaxSubmit({ 
    type: 'post', 
    url: '/test.do', 
    data: {}, 
    success:function(data){ 
    },
    error: function(data) { 
    }
});

form을 submit하고 난 후에 어떤 처리가 필요할 때 사용하면 유용하다.

더 자세히 알고싶다면 API를 참고하자.

2017년 5월 22일 월요일

jQuery ajax contentType


  • application/x-www-form-urlencoded
key-value 형태(?key=value&key=value...)로 전송된다. 
$.ajax({
       url: "",
       type: "post",
       data: {},
       contentType: "application/x-www-form-urlencoded;charset=UTF-8",
       success: function(data) {
     
       }
}); 
jquery js파일에 default 로 contentType이
application/x-www-form-urlencoded; charset=UTF-8 로 정의되어 있기 때문에 
contentType 은 생략해도 된다.
  
  • application/json
$.ajax({
       url: "",
       type: "post",
       data: JSON.stringify(data),
       contentType: "application/json",
       success: function(data) {
     
       }
}); 
json형태로 전송된다. 
data는 반드시 Stringify 처리를 해야한다.


2017년 5월 16일 화요일

BlockUI를 이용한 프로그래스 바. Progress bar


먼저 BlockUI를 사용하기 위해 jQuery plugin 을 다운받아야한다.

blockUI 다운로드


다운로드 받은 jquery.blockUI.js 파일을 프로젝트 소스에 위치시킨다.

사용법은 매우 간단함.

//2초 뒤 자동해제
$.blockUI({
    message : '<h1>Loading...</h1>',
    timeout : 2000
});


다음 두개만 쓰면 된다.

$.blockUI({message:"Loading..."});

$.unblockUI();//해제


좀 더 detail하게 알고싶다면 아래의 사이트를 참고하자
blockUI 정보

2017년 4월 25일 화요일

jQuery 동적 콤보박스(selectbox) 조회


selectbox 두 개가 있다면,

1
2
3
4
5
6
7
<select id="testSel">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
<select id="targetSel">
</select>
cs


스크립트

$(document).ready(function(){
  $('#testSel').change(function(){
    url : "",//목록을 조회 할 url
    data : {test : this.value},//선택한 값
    type : "post",
    dataType : "json",
    success:function(data){    
      //대상 콤보박스의 자식 option을 모두 지운다.
      $('#targetSel').children("option").remove();
      //data.rows 에 코드, 이름 형태로 되어있다고 가정.
      var codeList = data.rows;
      for(var i = 0; i < codeList.length ; i++){
        var option = "<option value='" + codeList[i].코드값 + "'>" + codeList[i].코드명 + "</option>";        
        //대상 콤보박스에 추가
        $('#targetSel').append(option);
      }
    },
    error:function(jqxhr, status, error){
      alert("에러");
    }
  });
});
cs



2017년 4월 24일 월요일

jQuery barcode(바코드) 예제


우선 아래의 링크에서 jQuery plugin을 download 한다.



현재기준(2017-04-11)
jquery-barcode-2.0.3.zip 압축풀기를 한 후,

jquery-barcode-2.0.3\jquery\sample\index.html 을 실행시키면 아래와 같이 demo를 볼 수 있다.


프로젝트에 적용하기 위해서는

jquery-barcode-2.0.3\jquery 디렉토리에서 

jquery-barcode.js or jquery-barcode.min.js  둘 중 하나를 개발 Project의 적절한 위치에 복사한다.

적용 소스는

<script type="text/javascript">
$(document).ready(function(){
    $('#test').barcode("barcode번호", "code128", {barWidth:2, barHeight:50});
});
</script>

<div id="test"></div>

이렇게만 하면 끝.

옵션(barWidth, barHeight 등..)은 화면에 맞게 조절해서 쓴다.




2017년 4월 21일 금요일

Stream ended unexpectedly 파일업로드 에러


Processing of multipart/form-data request failed. Stream ended unexpectedly

운영중인 사이트 로그를 보니 저 에러가 발생함.

에러 발생한 곳이 파일업로드 쪽인데,

파입 업로드 용량 제한을 10MB 로 해놓은 상태였고, 저장이 다 되면 팝업창이 닫히는 구조.

Local에서 똑같은 에러를 발생시킴.

용량제한을 풀고 100MB 정도되는 파일을 업로드 하던도중에 팝업창을 닫아서.. 에러를 발생!

사이트 주 사용자가 중국에서 사용하는데...

중국 네트워크 속도가 많이 느린것으로 추정.


저장하는 부분을 이렇게 수정함.
$('#form').ajaxSubmit({
  type: 'post',
  url: '',
  data: {},
  async: false,
  success:function(msg){
  },
  error: function(data) {
  }
});

기존에는 form을 submit하고 있었는데,  ajaxSubmit으로 바꾸고,

async : false 를 써서 동기처리했다.

ajaxSubmit 관련 내용은 여기 에 작성해놓음.

2017년 4월 14일 금요일

fileDownload.js file download after form submit (파일 다운로드 후 처리)


웹 파일다운로드 기능에서 사용자의 요청을 막는(?), 즉 사용자를 대기시키게 만드는 기능이 필요하다.

파일용량이 크거나 사용자의 네트워크 환경이 느린 곳?(해외)

그래서 사용한 것이 jQuery 플러그인 fileDownload!

jquery.fileDownload.js 파일이 필요하다.

아래 링크에서 다운받을 수 있다.

 github.com jquery.fileDownload

 * 참고로 Progress bar 대응으로 blockUI를 사용했다.

$.blockUI({message:"<h1>Downloading...</h1>"}); 
$.fileDownload($('#testForm').prop('action'), { 
    //preparingMessageHtml: "We are preparing your report, please wait...", 
    //failMessageHtml: "There was a problem generating your report, please try again.", 
    httpMethod: "POST", 
    data: $('#testForm').serialize(), 
    successCallback: function (url) { 
    $.unblockUI(); 
    },
    failCallback: function (responseHtml, url, error) { 
    $.unblockUI(); 
    alert("fail Download"); 
    } 
});


그리고 한가지 더 중요한것이 있는데, Java 쪽에서 cookie 설정을 꼭 해주어야한다.
res.setHeader("Set-Cookie", "fileDownload=true; path=/");//중요
cookie 설정을 하지 않으면 successCallback 이 호출되지 않는다.

2017년 4월 11일 화요일

jquery datepicker 간단 예제


입력 박스를 클릭하면 달력이 생성되는 예제이다.


  • script

<script type="text/javascript"> 
  $(document).ready(function(){ 
      $('#searchStartDate').datepicker({changeMonth: true, changeYear: true}); 
  }); 
</script>


  • html

<input type="text" name="searchStartDate" id="searchStartDate" />


  • 결과



♻️ 아이폰 리퍼 제품이란? 장단점과 구매 시 주의사항 총정리!

리퍼 아이폰 에 대해 들어보셨나요? 정품인데 저렴하고, 애플에서 직접 수리한 제품이라 믿을 수 있는 가성비 아이템입니다. 이번 포스팅에서는 아이폰 리퍼 제품의 개념부터 구매 팁까지 전부 알려드릴게요! ✅ 리퍼 제품이란? ‘ 리퍼비시(Refu...