控件上未呈现jQuery焦点类
当我第一次进入页面时,我试图将焦点设置在表单中的第一个控件上。这有时有效,有时无效-光标不在字段中设置,但地址栏中的地址具有焦点。下面的例子不起作用控件上未呈现jQuery焦点类,jquery,asp.net-mvc,Jquery,Asp.net Mvc,当我第一次进入页面时,我试图将焦点设置在表单中的第一个控件上。这有时有效,有时无效-光标不在字段中设置,但地址栏中的地址具有焦点。下面的例子不起作用 $(document).ready(function () { $(".focus").first().focus(); var pickerOpts1 = { defaultDate: "+0", //Used to move the current date cursor by n-day
$(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" })%>
$(文档).ready(函数(){
$(“.focus”).first().focus();
变量pickerOpts1={
defaultDate:“+0”,//用于将当前日期光标移动n天
日期格式:“mm/dd/yy”,
showOtherMonths:是的,
变化月:对,
变化年:是的,
年份范围:“1970:2020”
};
$(“#Sin”)。面具(“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日期格式
jQuery.validator.addMethod('date',函数(值、元素、参数){
if(此.可选(元素)){
返回true;
};
var结果=假;
试一试{
$.datepicker.parseDate(日期格式,值);
结果=真;
}
捕捉(错误){
结果=假;
}
返回结果;
}, '');
});
Model.legictionId,legictionTypeItems,新的{@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>
$(“.focus”)
返回元素数组,即使只有一个元素与选择器匹配。
所以试试这个:
$(“.focus”).first().focus()代码>
编辑:
要使其在页面加载时运行,您需要像这样包装它:
$(function() {
$(".focus").first().focus();
});
不幸的是,这不起作用,但由于某种原因,焦点被设置在地址栏而不是控件上?我编辑了答案,让我知道这是否解决了您的问题。我认为这可以解决问题,但只有在我刷新页面时-当我第一次使用redirectToAction(mvc)导航到它时它打开datetimepicker并显示掩码,但高亮显示仍在地址栏上。我已经编辑了原始问题,以显示它在我的代码中的位置。此外,如果有帮助的话,我正在使用IE9。嗯,奇怪。但上面缺少一些代码,因为我只看到一个下拉列表,没有日期选择器。你能包括剩下的代码吗?另外,您是否在其他浏览器中尝试过?