0
我有問題,有knockout.js和bootstrap模式。在按鈕上單擊我打開bootastrap模式,創建新的城市。然後我提交表單並保存在基地中。問題是因爲只是第一次提交作品。之後,它不起作用。 這裏是如何看起來像僅提交第一次knockout.js和bootstrap modal
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">×</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());
是的,ajaxJsonPost是發送JSON到休息服務的方法。我認爲問題是當我嘗試隱藏模式。他只是隱藏,下一次當我觸發模態時,它是我第一次觸發的同一模態。我不知道如何在提交後摧毀模態,而不僅僅是隱藏他。 – zholinho
然後在self.cities.push(data)之後,你可以不寫:self.city_name(null)。你不需要摧毀你的模態,你只是想清除你的觀察對象。 –
您還試圖清除標記中不存在的#city_name元素。 –