サンプル

:年月ダイアログ
:月初日
:月末日



インクルード部分
	<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css" type="text/css">
	<script src="jquery-1.11.1.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
	<script src="jquery.ui.ympicker.js"></script>
	<script src="ympicker_rap.js"></script>
	

HTMLソースコード
	<input type="text" id="test" />:年月ダイアログ<br>
	<input type="text" id="m_start_date" />:月初日<br>
	<input type="text" id="m_end_date" />:月末日<br>
	

JSソースコード
	$(function(){
		ympicker_tukishomatu('test','m_start_date','m_end_date');
	});
	

ympicker_rap.jsソースコード
	/**
	 * jquery.ui.ympicker.jsのrapモジュール
	 *
	 */

	/**
	 * ympicker・月初末
	 * 年月選択により月初日、月末日らのテキストボックスを連動させる。
	 *
	 * @param tb_ym_id 年月テキストボックスのID
	 * @param tb_m_start_id 月初日テキストボックスのID
	 * @param tb_m_ent_id 月末日テキストボックスのID
	 *
	 */
	function ympicker_tukishomatu(tb_ym_id,tb_m_start_id,tb_m_ent_id){



		//年月入力
		var op = {
			closeText: '閉じる',
			prevText: '&#x3c;前',
			nextText: '次&#x3e;',
			currentText: '今日',
			monthNames: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
			monthNamesShort: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
			dateFormat: 'yy/mm',
			yearSuffix: '年',
			onSelect:function(ym, instance) {


		    	  //月初日と月末日を算出し、入力フォームに表示
		    	  ympickerShowStartLast(ym,tb_m_start_id,tb_m_ent_id);


			}
		};

		//年月ダイアログを適用
		$('#' + tb_ym_id).ympicker(op);


		//年月をクリアしたら月初、月末もクリアする。
		$('#' + tb_ym_id).change(function () {
		      var v = $('#' + tb_ym_id).val();
		      if(v =='' || v==null){
		    	  $('#' + tb_m_start_id).val('');
		    	  $('#' + tb_m_ent_id).val('');
		      }else{

		    	  //年月チェック
		    	  if(ympickerIsYM(v)==true){

			    	  //月初日と月末日を算出し、入力フォームに表示
			    	  ympickerShowStartLast(v,tb_m_start_id,tb_m_ent_id);
		    	  }else{
			    	  $('#' + tb_m_start_id).val('');
			    	  $('#' + tb_m_ent_id).val('');
		    	  }


		      }
		}).change();

	}

	//月初日と月末日を算出し、入力フォームに表示
	function ympickerShowStartLast(ym,tb_m_start_id,tb_m_ent_id){
		var d1=ym + '/1';
		$('#' + tb_m_start_id).val(d1);

		//月末日の算出と出力
		var dt=new Date(d1);
		var last_d=new Date(dt.getFullYear(), dt.getMonth() + 1, 0);
		var last_d=DateFormat(last_d, 'yyyy/mm/dd'); // 01月23日
		$('#' + tb_m_ent_id).val(last_d);
	}


	/**
	 * 年月チェック
	 * yyyy/mm形式とyyyy-mm形式に対応
	 * ※注意 onchangeイベントと全角入力では正しく検知できない。
	 * @param value 年月
	 * @returns true:入力OK    false:入力エラー
	 */
	function ympickerIsYM(value){

		var ary=value.split("/");
		if(ary.length != 2){
			ary=value.split("-");
			if(ary.length != 2){
				return false;;
			}
		}

		var y=parseInt(ary[0]);
		var m=parseInt(ary[1]);

		var dt=new Date(y,m-1,1);
		if(dt.getFullYear()!=y || dt.getMonth()!=m-1 ){
			return false;
		}
		return true;
	}
	


jquery.ui.ympicker.jsの開発元