当我第一次进入页面时,我试图将焦点设置在表单中的第一个控件上。这有时会起作用,有时则不起作用 - 光标未在字段中设置,但地址栏中的地址具有焦点。以下示例不起作用。
$(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>
答案 0 :(得分:1)
$(".focus")
返回一个元素数组,即使只有一个元素与选择器匹配。
所以试试这个:
$(".focus").first().focus();
编辑: 要使它在页面加载时运行,你需要像这样包装它:
$(function() {
$(".focus").first().focus();
});