首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Html.TextBoxFor文本更改事件

@Html.TextBoxFor文本更改事件
EN

Stack Overflow用户
提问于 2016-11-30 16:17:56
回答 1查看 9.1K关注 0票数 4

我有一个如下的@Html.TextBoxFor

代码语言:javascript
复制
@Html.TextBoxFor(u => u.SomeProperty, new { @class = "jtb", @id = "TrajName", placeholder = "Traj Name" })

现在,我想要实现的是,在输入新字符的同时,我想知道何时将新字符添加到此文本框中。此时,我想将按钮状态更改为活动状态。我尝试了blurchange event。但它只有在焦点改变时才会触发。

代码语言:javascript
复制
$(document).ready(function () {
    $('#TrajName').val("");
    $('#StartLocation').val("-Select Location-");
    $('#EndLocation').val("-Select Location-");

    document.getElementById("BtnAddTraj").disabled = true;

    $("#TrajectoryName").blur(function () {
        if ($('#TrajName').text != "")
            document.getElementById("BtnAddTraj").disabled = false;
        else
            document.getElementById("BtnAddTraj").disabled = true;
    });
});

我有一个场景,用户可以在输入一些文本(即光标仍然在文本框内,焦点不变)后直接尝试点击按钮。

那么,有没有什么事件会在添加角色时触发,而不是在焦点改变时触发?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-30 16:26:29

您需要将事件处理程序绑定到keyup JavaScript事件。

此外,我建议您使用.prop来设置disabled属性。

请尝试以下操作:

代码语言:javascript
复制
@Html.TextBoxFor(u => u.SomeProperty, new { @class = "jtb", @id = "TrajName", placeholder = "Traj Name" }) 

 $("#TrajectoryName").keyup(function () {
    if ($('#TrajName').val() != "")
        $("#BtnAddTraj").prop('disabled',false);
    else
        $("#BtnAddTraj").prop('disabled',true);
});

另一种解决方案是触发TrajectoryName textbox的input事件。每当你的输入发生变化时,它就会触发。

代码语言:javascript
复制
$("#TrajectoryName").on('input',function () {
    if ($('#TrajName').val() != "")
        $("#BtnAddTraj").prop('disabled',false);
    else
        $("#BtnAddTraj").prop('disabled',true);
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40883360

复制
相关文章

相似问题

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