首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Textbox事件绑定和textbox值

Textbox事件绑定和textbox值
EN

Stack Overflow用户
提问于 2018-03-23 15:00:50
回答 2查看 604关注 0票数 1

我的文本框是:

代码语言:javascript
复制
 <input type="text" class="form-control textbox" data-bind="value: nameValue, , event: { 'keyup': checkIfTextBoxEmpty }" />

正如您在上面看到的,我正在我的文本框上使用keyup事件。

“淘汰赛”中的事件如下:

代码语言:javascript
复制
   self.checkIfTextBoxEmpty = function (data, event) {
       //To check if textbox is empty
       if(data.nameValue() == '')
        {
           //hide a span tag 
        }
    }; 

当用户没有输入值并按下我页面上的按钮时,我已经将验证器连接到这个文本框上,它显示了错误“字段是必需的”。

如果它们在textbox中输入无效的值,则在我的按钮单击时检查它,并在textbox下方的span中显示为错误。

当用户输入无效值并按下按钮时会出现问题,它会显示无效值错误,而当用户删除在文本框中输入的值时,则会同时显示所需的字段错误和无效值错误。

所以我把"keyup“事件绑在文本框上。在这里,我想检查该值是否为空,我将隐藏span标记,以便它只显示所需的字段错误。

但是在我的keyup事件中,data.nameValue()总是没有定义,所以我无法检查它们输入的值。

这里还有什么需要做的吗。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-25 03:04:52

Tomalak上面提到的答案是正确的方法。

有关如何使用事件的答案,您可以尝试以下代码。

代码语言:javascript
复制
 <input type="text" class="form-control textbox" data-bind="value: nameValue, 
 valueUpdate: 'value' , event: { 'keyup': checkIfTextBoxEmpty }" />
票数 1
EN

Stack Overflow用户

发布于 2018-03-23 15:08:52

正如您在上面看到的,我正在我的文本框上使用keyup事件。

你不应该。你根本不应该用任何活动。使用绑定和计算值。

代码语言:javascript
复制
function VM() {
  var self = this;

  self.nameValue = ko.observable('');
  
  self.nameIsEmpty = ko.computed(function () {
    return self.nameValue() == '';
  });
};

var vm = new VM();
ko.applyBindings(vm);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<input type="text" data-bind="textInput: nameValue">

<span data-bind="visible: nameIsEmpty">Field is required</span>

从长远来看,您应该学习敲除-验证插件,而不是滚动自己的验证代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49452669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档