专注于EditorFor Java的MVC - javascript

您有一个执行模态窗口的按钮

    <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">&times;</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>

这是在浏览器中运行的视图...
专注于EditorFor Java的MVC - javascript

我附上部分视图“ 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”,该函数将打开一个带有新密码输入框和另一个按钮的模式,以实际调用该函数来更改密码。为了使我的程序能够识别管理员正在更改的帐户,我需要将用户名作为参数传递,但是我的用户名包含“。”…