jquery - 为什么只有在搜索框中输入搜索后才会加载表格数据?

标签 jquery sharepoint knockout.js

我有一个共享点列表,顶部有一个搜索框。仅当我在搜索框中输入任何内容后,数据才会加载,但我不明白为什么。它使用 knockout

HTML:

<input placeholder="Search…" id="searchInput" type="search" name="q" data-bind="value: query, valueUpdate: 'keyup'" autocomplete="off">
   <tbody data-bind="foreach: ideas">

    <tr>
        <td></td>
        <td data-bind="text: $data.IdeaNumber"></td>
        <td data-bind="text: $data.IdeaTitle"></td>
        <td data-bind="text: $data.IdeaStatusValue"></td>
        .....
        <td></td>
    </tr>

</tbody>

View 模型:

var viewmodel = {
    query: ko.observable("")
    };

viewmodel.ideas = ko.dependentObservable(function() {
        var search = this.query().toLowerCase();
        return ko.utils.arrayFilter(ideaArray, function(idea) {
            return idea.IdeaTitle.toLowerCase().indexOf(search) >= 0;
        });
    }, viewmodel);

任何建议都会很好,谢谢。

最佳答案

这是因为您的输入设置:

data-bind="value: query, valueUpdate: 'keyup'"

这是 Update设置为keyup事件,仅在输入一些数据后才会触发。

请参阅Knockout documentation对于所有可能的值:

  • input - 当<input>的值时更新您的 View 模型或<textarea>元素变化。请注意,此事件仅由相当现代的浏览器(例如 IE 9+)引发。
  • keyup - 当用户释放按键时更新您的 View 模型
  • keypress - 当用户键入按键时更新您的 View 模型。与 keyup 不同,当用户按住某个键时,此操作会重复更新
  • afterkeydown - 当用户开始输入字符时立即更新您的 View 模型。这是通过捕获浏览器的 keydown 事件并异步处理该事件来实现的。这在某些移动浏览器中不起作用。

如果您希望最初在文本框中显示某些值,您可以更改 viewmodel :

var viewmodel = {
  query: ko.observable("Search here...") // will populate the textbox
};

关于jquery - 为什么只有在搜索框中输入搜索后才会加载表格数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364428/

相关文章:

jquery - 当子菜单项处于事件状态并保持子菜单打开时,使用 jquery 突出显示父级

sharepoint - 如何根据另一个字段中的值设置 SharePoint 列表字段中的默认值?

c# - 如何以编程方式从远程共享点服务器 checkout 文档 (c#)

jquery - Knockout.js 的触摸事件绑定(bind)

c# - NewtonSoft Json DeserializeObject 空 Guid 字段

javascript - 将ViewBag数据传递给requirejs或knockout

jquery - 仅针对某些字段自定义 jQuery Validation 的 errorPlacement

javascript - 将时间 slider 更改为 30 分钟而不是 1 小时

javascript - 如何将 innerHTML 添加到从 Node JS 发送的静态文件中?

javascript - 有没有办法使用 JS 从 SharePoint 列表中检索数据并为匿名用户保留列表权限的私有(private)性?