jQuery焦点类没有在控件上呈现

时间:2013-02-25 13:56:06

标签: jquery asp.net-mvc

当我第一次进入页面时,我试图将焦点设置在表单中的第一个控件上。这有时会起作用,有时则不起作用 - 光标未在字段中设置,但地址栏中的地址具有焦点。以下示例不起作用。

$(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" })%>

但是,当我在运行页面或使用Developer Tools查找源代码后查看源代码时,类会显示在标记中:

<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>

1 个答案:

答案 0 :(得分:1)

$(".focus")返回一个元素数组,即使只有一个元素与选择器匹配。 所以试试这个:

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

编辑: 要使它在页面加载时运行,你需要像这样包装它:

$(function() {
    $(".focus").first().focus();
});