我有一个 @Html.TextBoxFor
如下:
@Html.TextBoxFor(u => u.SomeProperty, new { @class = "jtb", @id = "TrajName", placeholder = "Traj Name" })
现在我想要实现的是我想知道何时在输入新字符的同时将其添加到此文本框。
我想此时将按钮状态更改为事件状态。我尝试了 blur
和 change
事件。但只有当焦点改变时它才会被触发。
$(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/