我正在使用Pyramid构建一个webapp,但Knockout的表现却不同。我有一个表格:
<div data-bind="with: $root.itemToAdd" style="display: none;">
<form data-bind="submit: $root.addItem">
<fieldset style="border: none;">
<legend >Submit Item</legend>
<label>
URL <span>{</span>
</label>
<input type="text" placeholder="URL" data-bind="value: url, valueUpdate: 'afterkeydown'" />
<br />
<br />
<label>
Kwip <span>{</span>
</label>
<input type="text" placeholder="Your description please!" data-bind="value: description, valueUpdate: 'afterkeydown'" />
<br />
<br />
<button type="button" class="submitAnItem">Add Item</button>
<a href="#" class="exit">Cancel</a>
</fieldset>
</form>
</div>
这是视图模型:
var ViewModel = function() {
this.itemToAdd = {
url: ko.observable(""),
description: ko.observable("")
};
//Behavior
this.addItem = function () {
alert('Event fired');
};
};
我无法弄清楚为什么在提交表单时没有触发'addItem'函数。我在另一个框架中重新创建了这个并且能够触发事件。金字塔中是否有可能干扰我的javascript的事情?有人能指出我正确的方向吗?
答案 0 :(得分:3)
这是因为类型按钮按钮不会触发提交事件。你需要一个按钮类型提交以解雇