淘汰赛中的lostfocus/onblur 事件

2024-06-19

我想在绑定到的淘汰可观察对象上执行一个事件input。当控件失去焦点时,即使没有输入任何内容,也应该执行此函数。我尝试更改事件绑定,但当用户离开控件而不输入任何内容时,它不会触发。我尝试了 mouseout 事件,但只有当用户在失去焦点后单击表单中的其他位置时才会触发 - 这不完全是我想要的。我希望一旦焦点离开控件,即使使用选项卡,偶数也会触发。

以下是我用于 mouseout 事件的代码:

<input
    type="text"
    id="txtFirstName"
    tabindex="1"
    maxlength="25"
    class="txtbox" 
    style="width: 200px;"
    data-bind="value: FirstName, 
               attr: {title: FirstNameErrorMessage },
               css: {validationFailed: !IsValidFirstName() },
               event: {mouseout: ValidateFirstName}" 
/>

this.ValidateFirstName = function () {
    self.IsValidFirstName(true);
    self.FirstNameErrorMessage('');
    if (self.FirstName() == '') {
        self.IsValidFirstName(false);
        self.FirstNameErrorMessage('First Name is required');
    }
}

有人可以帮忙吗?


我认为您可以使用几种方法。一个不错的选择是使用 KOhasfocus捆绑:http://knockoutjs.com/documentation/hasfocus-binding.html http://knockoutjs.com/documentation/hasfocus-binding.html.

您可以绑定布尔可观察量,然后订阅它。在订阅中,您可以选择仅在值为 false 时做出反应。

就像是:

self.FirstName = ko.observable();
self.FirstName.focused = ko.observable();

self.FirstName.focused.subscribe(function(newValue) {
   if (!newValue) {
       //do validation logic here and set any validation observables as necessary
   }
});

像这样绑定它:

data-bind="value: FirstName, hasfocus: FirstName.focused"

我认为,如果您希望每次用户离开该字段时触发它,无论他们如何离开它,也无论是否实际进行了更改,这将是一个不错的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

淘汰赛中的lostfocus/onblur 事件 的相关文章

  • 如何检查淘汰赛中的包含

    我正在使用淘汰赛 我有一个 html 页面 我想在其中检查具有某些值的字符串 就像我有一个字符串 A B C D F G H I 一样 我只想用剔除 if 检查 html 中的这个字符串 模型 var viewModel function
  • 如何让 ko.compated 处理对象内的可观察值

    我有一个相当简单的视图模型来保存数据数组并获取一个我想用来过滤数据的字符串 我有一些非常简单的标记来渲染它 如下所示 section class task list ul li li ul section
  • 敲除验证

    我有一个 asp net mvc3 项目 我在其中使用淘汰赛绑定对表进行批量编辑 我想在保存数据时进行必需验证和数字验证等验证 有没有更简单的方法来进行淘汰验证 PS 我没有使用表格 看一下敲除验证 https github com eri
  • Typescript 中此子范围的问题

    This is ALMOST和其他人一样this到目前为止 我已经读过范围界定问题 除了一个细微的差别之外 这使得提出这个问题变得有意义 imo 现在最初我的问题是范围this使用 Knockout 和 Typescript 因此给出以下内
  • Edge 中的 Javascript 仅适用于打开的 devtools

    我遇到的问题是 在 MS Edge 中 我的图像映射功能只能部分工作 它由淘汰赛 FW 提供动力 在更大的图像映射上 它不会将整个图像映射注册到视图模型中 因此 图像映射的所有悬停效果和单击样式都会停止工作 然而 这只是大图像地图的问题 还
  • 使用来自服务器和 ko.mapping 创建函数的元数据处理任意选项

    我有一个视图模型 其中一些可供选择的属性值由其他属性决定 这是通过requires field var clusterOptions name None sku 0 price 0 name Standard MySQL Cluster s
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • 淘汰 foreach 不会清除新虚拟机上的先前条目

    我有一个模态形式 其中有两个绑定到可观察数组的嵌套列表 每次我单击按钮打开模式时 这两个嵌套列表都不会清除它们以前的数据 即使我为整个事物生成了一个全新的视图模型 我最终在这两个列表中得到了重复的 和三次的 等等 项目 如何确保当我给这个东
  • Knockout.js - 数据绑定文本默认值

    在 knockout js 中 我有一个非常标准的字段 如下所示
  • 过滤表内容

    我正在寻找实现一个绑定来搜索 HTML 表 我考虑过实现自定义绑定并利用 jQuery 来完成繁重的工作 自定义绑定方面是为了使其在我的解决方案中普遍可访问 我当前的解决方案仅由 jQuery 组成 不使用任何 KnockoutJS 功能
  • 输入按键的淘汰赛事件绑定会导致奇怪的行为

    长话短说 我希望用户能够在输入元素上按 Enter 键 并调用我的视图模型中的某些方法 这是我的 html 输入
  • knockoutjs 在 foreach 绑定中单击绑定

    编辑 问题与绑定无关 而是与一个简单的 JavaScript 错误有关 我有一个关于 foreach 绑定中的单击绑定的问题 我有一个列表 其中的项目显示一个下拉框 用于从主数据中选择一个值 可以在该列表中添加和删除项目 用于删除项目的按钮
  • Knockout JS 中的多个扩展器不起作用

    刚刚在KO中找到了出路 所以请温柔一点 每个扩展器单独工作 但是当我链接它们时 第一个 重置 不会触发 JavaScript ko extenders reset function target var initialValue targe
  • KnockoutJS fromJS 不起作用 TypeError:无法调用未定义的方法“fromJS”

    我使用knockoutJS 当我使用 fromJS 时出现以下错误 类型错误 无法调用未定义的方法 fromJS 我的 JavaScript 代码
  • 淘汰赛,内容可编辑(和降价)

    使用由 markdown 字符串支持的 Knockout 绑定处理程序并进行渲染 使用 markdown js 和内置的 html 绑定处理程序 工作正常 但尝试添加内容可编辑行为 并且在可观察值未在模糊时更新或仅使用删除了所有降价格式的文
  • 从外部文件加载淘汰赛模板,无需复杂的引擎?

    我找到了加载外部模板的引擎 插件和函数 但我想知道是否有更简单的方法来做到这一点 像这样的东西吗 模板 html 索引 html div div 这行得通吗 有什么 陷阱 吗 这是我用来加载包含模板集合的模板文件的方法 var loadTe
  • 在淘汰赛应用程序中使用 setInterval 进行轮询实现?

    我正在尝试使用 setInterval 实现简单的轮询机制 我有一个视图模型如下 define knockout jquery function ko function ViewModel var self this setInterval
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr

随机推荐