【问题标题】:Unable to bind bootstrap model text field with knockout无法将引导模型文本字段与淘汰赛绑定
【发布时间】:2017-11-18 03:34:04
【问题描述】:

我有一个在单击按钮时显示的引导模式。虽然我能够绑定视图中的所有值,但我无法通过敲除绑定模态属性。

这是我的模态代码:

  <div class="form-group">
      <label class="control-label col-xs-3" for="clientName">Client Name</label>
      <div class="col-xs-8 input-group">
            <input name="clientName" class="form-control" required id="clientName" data-bind="textInput: clientName">
      </div>                          
  </div>

这是我的 Javascript 代码:

self.clientName = ko.observable();
self.onAddNewClient = function () {
       $("#clientProperties").modal({ backdrop: "static" });
  };
self.onSaveClientProperties = function () {
        var item=self.clientName();

 };

模式显示得很好,但是当我在文本字段中输入一个值并保存它时,“clientName”变量未定义,而是具有输入的值。 'onSaveClientProperties' 是一个在模态框上单击按钮时运行的函数。

谢谢!

【问题讨论】:

    标签: javascript knockout.js bootstrap-modal


    【解决方案1】:

    我不知道你是如何设置你的模态的,但我写了一个似乎可以做你想做的事情的 plunker: binding input in modal

    <body>
    
    
      <div id="clientProperties" class="modal fade" tabindex="-1">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span> <span class="sr-only">Close</span></button>
              <h4 class="modal-title" id="myModalLabel">Client</h4>
            </div>
            <div class="modal-body">
              <div class="row">
                <div class="col-md-6">
                  <input name="clientName" class="form-control" required id="clientName" data-bind="textInput: clientName">
                  <a href="#" data-bind="click: onSaveClientProperties" >save</a>
                </div>
    
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    
    <a href="#" data-toggle="modal" data-target="#clientProperties"> Add new Client</a>
    

    【讨论】:

    • 我用你的代码替换了我的整个模式只是为了检查,我仍然得到未定义的 clientName。我认为这可能是绑定问题,但它正确调用了 onSaveClienProperties 函数,所以我猜这不是绑定。
    【解决方案2】:

    好的,我找到了问题。我使用 VS 2015 ASP.NET 单页模板创建了我的项目,它使用了 Knockout-2.3.0.debug.js。首先,该资源没有被加载,因为它不包含在默认的淘汰赛捆绑包中,所以我这样做了,但它仍然没有工作。我将我的淘汰赛更新到了 Knockout3.4.2,瞧,它成功了。

    不知道为什么 VS2015 没有更新到最新版本的 Knockout。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 2016-10-26
      • 2013-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      相关资源
      最近更新 更多