我看到knockoutjs和jquery mobile存在一个奇怪的问题,如果输入类型设置为搜索,则绑定失败,对于相同的代码,如果输入类型设置为text,则绑定成功。关于如何解决这个问题的任何想法?
<form data-bind="jqmsubmit: search" >
<input data-theme="b" name="search" id="search" type="search" data-bind="value: searchTerm"></input>
</form>
使用上面的代码当我在文本框中输入并按回车键时,不会更新searchTerm。如果我将input元素更改为type =“text”,则searchTerm会按预期更新。
答案 0 :(得分:0)
输入type="search"
不会触发change
事件,而是触发serach
事件。
因此,您需要订阅search
事件,您可以使用valueUpdate
绑定的value
设置
<form data-bind="jqmsubmit: search" >
<input data-theme="b" name="search" id="search" type="search"
data-bind="value: searchTerm, valueUpdate: ['search']">
</input>
</form>
答案 1 :(得分:0)
我遇到了同样的问题。我认为这个问题与jQuery Mobile如何用 text 输入元素替换HTML格式不同的搜索输入元素有关。这种解决方法适用于我:
<input type="search"
onkeyup="ko.contextFor(this).$data.searchTerm(this.value);"
onchange="ko.contextFor(this).$data.searchTerm(this.value);"
placeholder="Search" />