javascript - 禁用提交按钮并在对文本框进行更改时启用

标签 javascript jquery asp.net-mvc

我有一个文本框和一个提交按钮。我想让按钮在页面加载时变灰(禁用),当用户在文本框中进行更改时,无论是添加文本还是删除文本,按钮都将被启用,一旦保存,按钮将再次被禁用。

<h3>Username</h3>
   @Html.TextBoxFor(m=>m.username)

<button class="btn btn-small savebtn" type="submit" value="User Name">Save</button>

现在我遇到的问题是如何将此脚本正确地插入到我的 View 中。这是我目前的观点:

@model Project.Models.UsernameModel

@using (Html.BeginForm("_UsernamePartial", "Account")) {

   <h3>Username</h3>
   @Html.TextBoxFor(m=>m.Username)

<button class="btn btn-small savebtn" type="submit" value="User name">Save</button>

我是否在标签后的底部添加这样的脚本:

@section scripts {
<script type="text/javascript">
    $(document).ready(function () {
        $(".savebtn").attr('disabled', 'disabled');

        $("#UserName").keyup(function () {
            $(".savebtn").removeAttr('disabled');
        });

        $(".savebtn").click(function () {
            $(this).attr('disabled', 'disabled');
        });
    });
</script>

最佳答案

如果我正确理解您的要求,您想要这样的东西:

$(document).ready(function () {
    //Disable Save Button On Page Load
    $(".savebtn").attr('disabled', 'disabled');

    //When User Name changes, enable Save Button
    $("#UserName").keyup(function() {
        $(".savebtn").removeAttr('disabled');
    });

    //Disable Save Button once clicked
    $(".savebtn").click(function() {
        $(this).attr('disabled', 'disabled');
    });
});

这是一个示例 JS Fiddle .

关于javascript - 禁用提交按钮并在对文本框进行更改时启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948488/

相关文章:

javascript - jQuery data() 获取不正确的数字数据

javascript - 显示 CSS 属性

asp.net-mvc - 嵌套对象的远程 ViewModel 验证不起作用

css - 自动换行 :break-word - don't break strings

javascript - 在 jquery 中增加 $_SESSION 索引

javascript - 当页面重新加载时正在监视的属性未更改时,Vue watch 不会运行

javascript - 如何让 jstree 与 ajax 加载的内容一起正常工作

asp.net-mvc - 单选按钮上的ASP.NET MVC 4必需的验证客户端

javascript - CORS XMLHttpRequest 请求来源和引用者

javascript - Mirth Javascript IF 编码问题