javascript - @Html.TextBoxFor 文本改变事件

标签 javascript c# jquery html asp.net-mvc

我有一个 @Html.TextBoxFor 如下:

@Html.TextBoxFor(u => u.SomeProperty, new { @class = "jtb", @id = "TrajName", placeholder = "Traj Name" })

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

$(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;
    });
});

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

那么是否有任何事件在添加 Angular 色时提供实时触发而不是在焦点更改时触发?

最佳答案

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

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

请试试这个:

@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);
});

另一种解决方案是触发 input 事件到 TrajectoryName 文本框。每次您的输入更改时都会触发。

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

关于javascript - @Html.TextBoxFor 文本改变事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883360/

相关文章:

c# - 尝试附加一个自动命名的数据库错误

c# - 如何在自定义目标之后运行构建后事件?

c# - 我如何在 C++/CLI 中执行 C# typeof(bool)?

javascript - 类型错误 : Cannot read property 'body' of undefined after POST (MEAN)

javascript - 由于错误 80020101,无法完成操作。IE

javascript - 回到在 angularJS 中使用指令之前

javascript - 使用通用 javascript 时无法访问 Vue 组件中的 DOM 元素

c# - 执行 Ajax 时出现 500 内部服务器错误

jquery - 三 Angular 形目标 jQuery

javascript - 通过数组访问时未调用 addEventListener() 方法