Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Knockoutjs专注于一个模态_Javascript_Jquery_Knockout.js_Modal Dialog - Fatal编程技术网

Javascript Knockoutjs专注于一个模态

Javascript Knockoutjs专注于一个模态,javascript,jquery,knockout.js,modal-dialog,Javascript,Jquery,Knockout.js,Modal Dialog,我不知道我做错了什么,但我的hasFocus绑定在模态上不起作用。我看了@jasper tey发布的这篇文章,但当我把它从一个框架中拉出来,作为一个独立的HTML页面编写时,它就不起作用了 我调试了setFocus函数,并确认正在模型中设置isfocus值。绑定似乎是正确的,解析器并没有对我大喊大叫。然而,在我的代码中,模态并没有得到关注,但在JSFIDLE示例中,它似乎工作得很好。任何关于我所缺少的东西的建议都将不胜感激 这是我的密码: <!DOCTYPE html> <ht

我不知道我做错了什么,但我的hasFocus绑定在模态上不起作用。我看了@jasper tey发布的这篇文章,但当我把它从一个框架中拉出来,作为一个独立的HTML页面编写时,它就不起作用了

我调试了setFocus函数,并确认正在模型中设置isfocus值。绑定似乎是正确的,解析器并没有对我大喊大叫。然而,在我的代码中,模态并没有得到关注,但在JSFIDLE示例中,它似乎工作得很好。任何关于我所缺少的东西的建议都将不胜感激

这是我的密码:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Input-focus in a Modalized Knockout Template</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex, nofollow">
  <meta name="googlebot" content="noindex, nofollow">
  <meta name="viewport" content="width=device-width, initial-scale=1">

        <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">

        <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js"></script>

  <style id="compiled-css" type="text/css">
      .container {
    padding: 10px;
}
  </style>


</head>
<body>
    <div class="container">
    <h4>Input-focus in a Bootstrap Modal</h4>
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">Launch modal</button>
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <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>
                     <h4 class="modal-title" id="myModalLabel"></h4>

                </div>
                <div class="modal-body" data-bind="template: { name: 'bodyTemplateA'}"></div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary" data-bind="click: setFocus">Set Focus</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script id="bodyTemplateA" type="text/html">
    <div class="form-group">
        <label>Name</label>
        <input type="text" class="form-control" data-bind="value: name, hasFocus: isFocused" />
    </div>
    <div class="form-group">
        <label>Type</label>
        <input type="text" class="form-control" data-bind="value: type" />
    </div>
</script>

  <script type="text/javascript">

    $(window).load(function(){

        function mainModel (){
                var self = this;
                self.name =  ko.observable("Blue border when in focus");
                self.type =  ko.observable();

                self.header =  ko.observable("This is a modal");
                self.body =  ko.observable('bodyTemplateA');

                self.isFocused =  ko.observable(false);

                self.setFocus = function() {
                        data.isFocused(true);
                }

        }

        var data = new mainModel();  
        ko.applyBindings(data);

        $('#myModal').on('shown.bs.modal', function(){
            data.isFocused(true);
        });


        });

  </script>


</body>
</html>

在模块化淘汰模板中输入焦点
.集装箱{
填充:10px;
}
引导模式中的输入焦点
发射模态
&时代;
接近
聚焦
名称
类型
$(窗口)。加载(函数(){
函数main模型(){
var self=这个;
self.name=ko.observable(“聚焦时的蓝色边框”);
self.type=ko.observable();
self.header=ko.observable(“这是一个模态”);
self.body=ko.observable('bodyTemplateA');
self.isFocused=ko.可观察(假);
self.setFocus=函数(){
数据。isFocused(true);
}
}
var数据=新的mainModel();
ko.应用绑定(数据);
$('#myModal').on('show.bs.modal',function(){
数据。isFocused(true);
});
});

我已经更改了代码并更新了knockoutjs导入,从2.2.1版升级到3.1.0版,效果良好

我更改的代码:

        var data = {
                // var self = this;
                name:  ko.observable(),
                type:  ko.observable(),

                header: ko.observable("This is a modal"),
                body: ko.observable('bodyTemplateA'),

                isFocused:  ko.observable(false),

                setFocus: function() {
                        data.isFocused(true);
                },

        }

        ko.applyBindings(data);

        $('#myModal').on('shown.bs.modal', function(){
            data.isFocused(true);
        });

尽管我认为图书馆版本是引起麻烦的版本

我已经更改了代码并更新了knockoutjs导入,从2.2.1版升级到3.1.0版,效果良好

我更改的代码:

        var data = {
                // var self = this;
                name:  ko.observable(),
                type:  ko.observable(),

                header: ko.observable("This is a modal"),
                body: ko.observable('bodyTemplateA'),

                isFocused:  ko.observable(false),

                setFocus: function() {
                        data.isFocused(true);
                },

        }

        ko.applyBindings(data);

        $('#myModal').on('shown.bs.modal', function(){
            data.isFocused(true);
        });

尽管我认为图书馆版本是引起麻烦的版本

谢谢。是的,我可以使用jquery选择器在第一个文本框上设置焦点,但我试图使用knockoutjs数据绑定来实现这一点,我想知道为什么它可以在链接的JSFIDLE示例上工作,但不能在我的代码中工作。@bswat我已经更新了答案,尝试不使用jQueryTanks!我没有想到这可能是因为knockoutjs库版本。谢谢。是的,我可以使用jquery选择器在第一个文本框上设置焦点,但我试图使用knockoutjs数据绑定来实现这一点,我想知道为什么它可以在链接的JSFIDLE示例上工作,但不能在我的代码中工作。@bswat我已经更新了答案,尝试不使用jQueryTanks!我没有想到这可能是因为knockoutjs库版本。