0

$(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フィドルで機能します:フィドル

4

1 に答える 1

0

のようにしてみてください

$("#[id^="+ $last_Time.attr("id")+"]").focus(function()
{
   css("color","red")
});
于 2012-09-14T10:43:58.070 に答える