Javascriptあれこれ
変数が"undefined"かどうかを確認する
「typeof」を活用する。
var id = $(this).attr('id'); if (typeof id !== "undefined") { parameterIndex = id.lastIndexOf('hoge'); }
バリデーションチェック
- 入力必須
- 数字もしくはカンマ
- メールアドレス形式
- ◯◯日後かどうか
function validateForm(frm) { // 必須項目チェック for (var i=0; i<frm.length; i++) { var value = frm.elements[i].value; var type = frm.elements[i].type; if ((type == 'text' || type == 'textarea' || type == 'select-one') && value == '') { alert('そこは入力必須やで!'); frm.elements[i].focus(); return false; } } // 数字もしくはカンマのみ if (! frm.任意の要素のid.value.match(/^[0-9,]+$/)) { alert('そこは数字かカンマやろ〜!'); frm.任意の要素のid.focus(); return false; } // メールアドレスの形式チェック if (! frm.任意の要素のid.value.match(/.+@.+\..+/)) { alert('メアドの書き方にしてくれんと、かなわんわ〜!'); frm.任意の要素のid.focus(); return false; } // ◯◯日後かチェック var nowDate = new Date(); var daysAfter = 3; var futureDateTime = nowDate.getTime() + daysAfter*24*60*60*1000; var requestedDate = ''; requestedDate += frm.年の要素のid.value; requestedDate += '/'; requestedDate += frm.月の要素のid.value; requestedDate += '/'; requestedDate += frm.日の要素のid.value; requestedDate += ' '; requestedDate += frm.時の要素のid.value; requestedDate += ':'; requestedDate += frm.分の要素のid.value; requestedDate += ':00'; alert(requestedDate); var requestedDateObj = new Date(requestedDate); var requestedDateTime = requestedDateObj.getTime(); if (futureDateTime > requestedDateTime) { alert(daysAfter + '日後を指定してくれやんとあかんわー'); frm.年の要素のid.focus(); return false; } }
formオブジェクトを作成してPOST送信する
var hchuno_id = 1976; var hoge_ids = '4, 29' var form_action = '/mychuno/send/'; form_action += hchuno_id; var frm = document.createElement("form"); var ipt = document.createElement("input"); frm.action = form_action; frm.method = "post"; ipt.name = "hoge_id"; ipt.value = hoge_ids; frm.appendChild(ipt); document.body.appendChild(frm); frm.submit();