0

最初にページに入るときに、フォームの最初のコントロールにフォーカスを設定しようとしています。これは機能する場合と機能しない場合があります。カーソルはフィールドに設定されていませんが、アドレスバーのアドレスにフォーカスがあります。以下の例は機能しません。

$(document).ready(function () {

$(".focus").first().focus();

 var pickerOpts1 = {
                defaultDate: "+0",          //Used to move the current date cursor by n-days
                dateFormat: "mm/dd/yy",
                showOtherMonths: true,
                changeMonth: true,
                changeYear: true,
                yearRange: '1970:2020'
            };


        $("#Sin").mask("999-999-999");
        $("#successorHolderSin").mask("999-999-999");

        $(".sinNumber").mask("999-999-9999");

        $(".datepicker").mask("99/99/9999");
        $(".datepicker").datepicker(pickerOpts1);



     var dateFormat = "dd/mm/yy"; // en-gb date format
            jQuery.validator.addMethod('date', function (value, element, params) {
                if (this.optional(element)) {
                    return true;
                };

                var result = false;
                try {
                    $.datepicker.parseDate(dateFormat, value);
                    result = true;
                }
                catch (err) {
                    result = false;
                }
                return result;
            }, '');

});

<%:Html.DropDownListFor(r => Model.LegislationId, legislationTypeItems, new { @class = "focus" })%>

ただし、ページを実行した後、または開発者ツールを使用してソースコードを検索した後、ソースコードを確認すると、クラスがタグに表示されます。

<select class="focus" data-val="true" data-val-number="The field LegislationId must be a number." id="LegislationId" name="LegislationId">

何が足りないのか教えていただけますか?私が使用しているjQueryファイルは次のとおりです。

  <script src="../../Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.maskedinput-1.3.js" type="text/javascript"></script>    
    <script src="../../Scripts/jquery-datepicker.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.validate.js" type = "text/javascript"></script>
4

1 に答える 1

1

$(".focus")セレクターに一致する要素が 1 つだけの場合でも、要素の配列を返します。だからこれを試してください:

$(".focus").first().focus();

編集:ページの読み込み時に実行するには、次のようにラップする必要があります。

$(function() {
    $(".focus").first().focus();
});
于 2013-02-25T14:03:51.283 に答える