自动对焦在使用MVC3 Razor的局部视图内部不起作用

时间:2012-02-01 00:22:38

标签: forms asp.net-mvc-3 razor asp.net-mvc-partialview autofocus

我正在使用MVC 3 Razor,我在PartialView中有一个简单的表单[我将其显示为弹出窗口]。部分功能在PartialView中无法正常工作。例如autofocus属性。

@Html.TextBoxFor(model => model.Code, new { style = "width:50px", maxlength = 4, autofocus = "" })

我已尝试通过jQuery脚本设置焦点,但这也不起作用。

$('#Code').focus();

我错过了什么吗?我是否必须在部分视图中导入一些脚本才能使其正常工作?

非常感谢任何帮助。

先谢谢。

更新

我发现了问题......我正在加载窗口,然后在延迟700毫秒后显示它。我注释掉了setTimeout行并且它有效。必须是在表单加载时焦点工作但是当我实际执行“open()”时它再次失去焦点。

以前的代码

function openWindow(url, title) {
  var window = $("#Window").data("tWindow");
  window.ajaxRequest(url);
  window.title(title);
  setTimeout(showWindow, 700);
}

function showWindow() {
  var window = $("#Window").data("tWindow");
  window.open().center();
}

新代码

function openWindow(url, title) {
  var window = $("#Window").data("tWindow");
  window.ajaxRequest(url);
  window.title(title).open().center();;
//setTimeout(showWindow, 700);
}

感谢大家的回复。希望它可以帮到某人。

1 个答案:

答案 0 :(得分:0)

试试这段代码:

function openWindow(url, title) {
  var window = $("#Window").data("tWindow");
  window.ajaxRequest(url);
  window.title(title).open().center();
  //call after the content has been loaded from the Ajax request
  document.getElementById('Code').focus();
}