間違った値を許可し、正しい値に自動的にフォーマットする方法を見つけようとしています。
たとえば、1 jun 2013 と入力すると、'j' が大文字ではないため、この値は許可されません。値をテキスト (onBlur) としてインターセプトし、「j」を大文字の値に変更する方法はありますか?
問題は、入力の生の値を取得する前にエラーが発生することです。エラーが発生する前に、どの時点で値を取得できるかわかりません(日付を解析できないため)。
ありがとう。
間違った値を許可し、正しい値に自動的にフォーマットする方法を見つけようとしています。
たとえば、1 jun 2013 と入力すると、'j' が大文字ではないため、この値は許可されません。値をテキスト (onBlur) としてインターセプトし、「j」を大文字の値に変更する方法はありますか?
問題は、入力の生の値を取得する前にエラーが発生することです。エラーが発生する前に、どの時点で値を取得できるかわかりません(日付を解析できないため)。
ありがとう。
日付が毎回同じ形式で入力されることを期待している場合は、入力をスペースで分割する関数を作成し、 を実行したときに各部分が数値かどうかを確認しparseInt()
、そうでない場合は、それを大文字にします。
function formatDate(date) {
var dateElements = date.split(" ");
var formattedDate = "";
for (var i=0; i < dateElements.length; i++) {
var dateElement = dateElements[i];
if (isNaN(parseInt(dateElement))) {
dateElement = dateElement.charAt(0).toUpperCase() + dateElement.slice(1);
}
formattedDate += dateElement + " ";
}
return formattedDate.trim();
}
var formattedDate = formatDate("1 jun 2013");
alert(formattedDate);
デモを参照してください。