Javascript 仅提交首次knockout.js和引导模式

Javascript 仅提交首次knockout.js和引导模式,javascript,html,twitter-bootstrap,knockout.js,bootstrap-modal,Javascript,Html,Twitter Bootstrap,Knockout.js,Bootstrap Modal,我有问题,关于knockout.js和bootstrap modal。点击按钮打开bootastrap模式,用于创建新城市。然后我提交表单并保存在base中。问题是因为提交只在第一次起作用。在那之后它就不起作用了。 下面是它的样子 html文件 > <!-- Modal add new city > ==================================================--> > <div class="moda

我有问题,关于knockout.js和bootstrap modal。点击按钮打开bootastrap模式,用于创建新城市。然后我提交表单并保存在base中。问题是因为提交只在第一次起作用。在那之后它就不起作用了。 下面是它的样子

html文件

> <!-- Modal add new city
>      ==================================================-->
>     <div class="modal fade" id="addCity" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
>       <div class="modal-dialog">
>         <form data-bind="submit: onSubmit">
>         <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">Dodaj novi grad</h4>
>           </div>
>           <div class="modal-body">
>             <div class="input-group">
>               <span class="input-group-addon">Ime grada</span>
>               <input type="text" class="form-control" placeholder="Ime grada" data-bind="value : city_name">
>           </div
>     
>     
>         </div>
>           <div class="modal-footer">
>             <button type="button" class="btn btn-default" data-dismiss="modal">Zatvori</button>
>             <button type="submit" class="btn btn-success">Sacuvaj</button>
>           </div>
>         </div><!-- /.modal-content -->
>         </form>
>       </div><!-- /.modal-dialog -->
>     </div><!-- /.modal -->

您能否不只是执行ajax请求而不是表单提交?比如:

$.ajax({
    url: "/services/private_service/add_city",
    data: data,
    success: function (data) {
        $("#cityName").attr("value", "");
        $('#addCity').modal('hide');
        self.cities.push(data);
    }
});

除非您已经为这个方法编写了脚本,否则我不熟悉ajaxJsonPost。

是的,ajaxJsonPost是一个将JSON发送到rest服务的方法。我想问题是当我试图隐藏模态时。他只是隐藏起来了,下次我触发模态时,它就是我第一次触发的模态。我不知道如何在提交后销毁莫代尔,不仅仅是为了隐藏他。然后在self.cities.pushdata之后,你不能写:self.city\u namenull。你不需要破坏你的模态,你只需要清除你的可观察对象。你还试图清除标记中不存在的city\u name元素。对不起,我在这里复制了错误的代码,我已经用新的city\u name修复了它。使用self.new_city_name时,输入已重置,但我仍然有相同的问题。当我删除$'addCity'。模态'hide';一切正常,除了莫代尔保持打开状态。
$.ajax({
    url: "/services/private_service/add_city",
    data: data,
    success: function (data) {
        $("#cityName").attr("value", "");
        $('#addCity').modal('hide');
        self.cities.push(data);
    }
});