您有一个执行模态窗口的按钮
<a data-dialog="AgregarProducto" href="@Url.Action("AgregarProducto", "Salidas")" id="agregarproducto" class="dialog-window btn btn-success">Agregar Producto <span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span> </a>
<div class="modal fade" id="AgregarProducto" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h2 class="modal-title"></h2>
</div>
<div class="modal-body"><div class="te">Espere Porfavor...</div></div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#agregarproducto').click(function (e) {
e.preventDefault();
var $link = $(this);
var title = $link.text();
$('#AgregarProducto.modal-title').html(title);
var url = $(this).attr('href');
if (url.indexOf('#') == 0) {
$('#AgregarProducto').modal('show');
}
else {
$.get(url, function (data) {
$('#AgregarProducto .te').html(data);
$('#AgregarProducto').modal();
}).success(function () { $('input:text:visible:first').focus(); });
}
});
});
</script>
这是在浏览器中运行的视图...
我附上部分视图“ AgregarProducto.cshtml”:
<div class="form-group">
@Html.LabelFor(model => model.Kn_CodigoProducto, "Producto", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Kn_CodigoProducto, new { htmlAttributes = new { @class = "form-control", @autofocus = "true", @required = "true" , id = "editorfocus" } })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button class="btn btn-success" type="submit">
Agregar Producto
<i class="glyphicon glyphicon-ok"></i>
</button>
</div>
</div>
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script>
$(function(){
$('#AgregarProducto').on('shown.bs.modal', function () {
$('#editorfocus').focus()
});
});
</script>
}
您想要的是专注于Editor对于箭头所示的焦点,必须在打开模态视图后立即执行此焦点,但是我没有得到预期的结果,我的代码没有任何作用,对我没有任何帮助?打开部分视图“ AddProduct.cshtml”,如何获得焦点?
参考方案
部分视图不支持节(在您的情况下,这可能是幸运的,因为您将加载jquery的另一个副本)。从局部中删除片段,并在主脚本中设置焦点。
$('#agregarproducto').click(function (e) {
e.preventDefault();
....
if (url.indexOf('#') == 0) {
$('#AgregarProducto').modal('show');
$('#editorfocus').focus(); // set focus
}
else {
$.get(url, function (data) {
$('#AgregarProducto .te').html(data);
$('#AgregarProducto').modal();
$('#editorfocus').focus() // set focus
});
}
});
请注意,您对if/else
块的使用尚不清楚,因为url
的值始终为"/Salidas/AgregarProducto"
,所以else
块中的代码将只被执行,因此脚本可以
$('#agregarproducto').click(function (e) {
e.preventDefault();
....
$.get(url, function (data) {
$('#AgregarProducto .te').html(data);
$('#AgregarProducto').modal();
$('#editorfocus').focus() // set focus
});
});
但是,如果要避免进行ajax调用以再次获得相同的部分(如果已经加载了该部分),那么可以使用一个标志来指示是否已加载该部分(例如)
var isModalLoaded = false;
$('#agregarproducto').click(function (e) {
e.preventDefault();
if (isModalLoaded) {
// Just show the modal
$('#AgregarProducto').modal('show');
$('#editorfocus').focus() // set focus
} else {
// Make ajax call
$.get(url, function (data) {
....
});
isModalLoaded = true; // prevent further ajax calls
}
});
打印二维阵列 - javascript我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…
保留文本区域的数据或值,然后选择输入 - javascript通过$ _POST提交表单时,输入文件值仍然保留。像这样: if($_POST){ $error = false; if(!$post['price']){ $error = true; $error_note['price'] = "*Should not be empty"; } if($err…
变更事件时道具无法正常工作 - javascript我有一些代码,当用户从下拉列表中选择一个项目时,这会触发一个change事件,然后调用php页面进行处理。首次加载页面时,我选择一个项目,并在触发change事件时,这应更改所选select输入的占位符并禁用相同的输入:“#box_ffrtv”。但是,发生的事情是更改仅在我在下拉菜单中进行了第二选择之后才发生,然后更改了占位符并禁用了输入。我对jquery还…
将简单的javascript代码转换为c# - javascript昨天我在这里问了一个问题。使用javascript和html解决方案很简单前一阵子我打算什么是操纵html来执行javascript中的任务但是我改变了主意,将javascript代码重写为c#这是输入<Abstract> <Heading>Abstract</Heading> <Para TextBreak=…
包含“。”的onClick函数参数 - javascript我正在尝试创建一个表,该表包含该表的“更改密码”列中各项的onClick函数,以便我的系统管理员可以更改每个人的密码。每个onClick都会调用函数“ ChangePassOpen”,该函数将打开一个带有新密码输入框和另一个按钮的模式,以实际调用该函数来更改密码。为了使我的程序能够识别管理员正在更改的帐户,我需要将用户名作为参数传递,但是我的用户名包含“。”…