0

我有问题,knockout.js 和引导模式。在按钮上单击我打开引导模式,用于创建新城市。然后我提交表单并保存在基础中。问题是因为提交只在第一次工作。之后它不起作用。这是它的样子

.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 -->

js文件

    var viewModel = ko.computed(function()
{
    var self = this;

        var cities = getAllCities();
    self.cities = ko.observableArray(cities);



    self.city_name = ko.observable();
    self.logo_path = ko.observable();

    //add new city
    self.onSubmit = function() 
    {

        var data = JSON.stringify(
            {
                city_name : self.city_name(), logo_path : self.logo_path()        
            }); // prepare request data
        var response =  ajaxJsonPost("/services/private_service/add_city", data, false, false);
        if (response.status === ResponseStatus.SUCCESS) {
        $("#cityName").attr("value", "");
        $('#addCity').modal('hide');
        self.cities.push(data);
        } else {
            //handle error
        }
    };

});

ko.applyBindings(new viewModel());
4

1 回答 1

0

你不能只做一个ajax请求而不是一个表单提交吗?就像是:

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

除非您为此方法编写了脚本,否则我不熟悉“ajaxJsonPost()”。

于 2014-01-17T05:29:23.867 回答