「mm/dd」「mm/d」「m/dd」「m/d」
の形式で入力された日付を
[yyyy/mm/dd]に変換したいです。
直接[yyyy/mm/dd]と入力した場合や空欄の場合
は変換を行わないようにしたいです。
http://q.hatena.ne.jp/1168423287
以前にも同じような質問をして、その時は解決
したのですが、新たな問題として、
「mm/dd」「mm/d」「m/dd」「m/d」入力時は
正しく[yyyy/mm/dd]となるのですが、
・直接[yyyy/mm/dd]と入力した場合
・「mm/dd」と入力して[yyyy/mm/dd]と変換され たあとに[dd]だけ修正した場合
・フォーカスした後、何も入力せずにカーソルを
はずした場合
などに意図しない数値に変換されてしまいます。
これを回避するためのソースを教えていただけないでしょうか。
たびたび同じような質問で恐縮なのですが、
ご存知の方がいらっしゃたらご教授いただけないでしょうか?
よろしくお願いします。
/が1個のときだけ変換するようにすればいいかな
<html> <head> <script Language="javaScript"> <!-- function formdate( object ){ m_d = object.value.split("/"); date = new Date(); year = date.getFullYear(); if(m_d.length == 2){ month = m_d[0]; if(month.length == 1){ month = "0" + month; } day = m_d[1]; if(day.length == 1){ day = "0" + day; } object.value = year + "/" + month + "/" + day; } } // --> </script> </head> <body> <input type="text" onChange="formdate(this)" /> </bocy> </html>
サンプルまで作っていただいて
本当にありがとうございます!
yyyy/mm/d
と入力した時もyyyy/mm/ddに変換
できるのですね。
ありがとうございます!
さっそく実験してみましたらちゃんとできました。