$(focus_On).focus();
その入力フィールドにフォーカスを設定しfocus_on = #start_Time_Mo
ません。
as$(focus_On).css("color","red");
は、そのフィールドのテキストを赤に設定します。
なぜ.focus()
今はうまくいくのですか?
サンプルコード:
$last_Time = $(event.target);
クリックで設定されます#start_Time_XX
したがって、動的に作成されますon
。
有効な時間範囲を確認した後、時間が範囲外の場合は、フォントの色が赤で強調表示され、その入力フィールドにフォーカスが戻されます。
$("#detail_Section").on("blur", "#start_Time_Mo, #start_Time_Tu, #start_Time_Wed, #start_Time_Th, #start_Time_Fr, #start_Time_Sa, #start_Time_Su", function(event) {
earliest = (period_Definitions["morning_Start"]).split(":");
earliest_Time = new Date(1970, 1, 1, earliest["0"], earliest["1"], 0, 0);
latest = (period_Definitions["evening_End"]).split(":");
latest_Time = new Date(1970, 1, 1, latest["0"], latest["1"], 0, 0);
test_Times = ($last_Time.val()).split(":");
test_Time = new Date(1970, 1, 1, test_Times["0"], test_Times["1"], 0, 0);
if (test_Time >= earliest_Time && test_Time <= latest_Time) {
console.log("time good");
} else {
focus_On = "#" + $last_Time.attr("id");
$(focus_On).css("color", "red");
$(focus_On).focus();
}
last_String = "";
});
迷惑なことに、これはjsフィドルで機能します:フィドル