4

我是 mvc 的初学者。我正在开发一个应用程序,我在其中输入值并按 TAB 后需要更改文本框的值。例如,当我在文本框中输入1并按 Tab 时,它应该显示+1即,我需要在我输入的文本上加上一个+号。为此,我正在尝试为文本框引发一个 textchanged 事件。我该怎么做。当我用谷歌搜索它时,我发现它可以使用 javascript 来完成。但我不知道该怎么做,请给我一些建议。

代码:

 @Html.TextBoxFor(m => m.text)--textbox
4

1 回答 1

5

您可以使用 jQuery 并订阅blur将在输入字段失去焦点时触发的事件:

$(function() {
    $('#id_of_your_textbox').blur(function() {
        var value = $(this).val();
        var newValue = value + '1';
        $(this).val(newValue);
    });
});

如果您不想使用诸如 jQuery 之类的 javascript 框架,您可以使用纯 javascript 实现相同的效果:

window.onload = function() {
    document.getElementById('id_of_your_textbox').onblur = function() {
        var value = this.value;
        var newValue = value + '1';
        this.value = newValue;
    };
};

注意:这会将字符串值添加1到现有文本中。如果要执行整数加法,则需要先解析当前值。您可以为此使用parseIntorparseFloat方法(取决于数据类型):

var value = parseInt($(this).val());
if (!isNaN(value)) {
    var newValue = value + 1;
    $(this).val(newValue);
} else {
    alert('You have entered an invalid integer value');
}

以下是如何为您的文本字段分配确定性 id,您可以在 javascript 选择器中使用它:

@Html.TextBoxFor(m => m.text, new { id = "id_of_your_textbox" })
于 2013-04-25T10:07:44.177 回答