c# - 检查动态创建的文本框是否被 Javascript 弄脏

标签 c# javascript asp.net-mvc asp.net-mvc-3

我正在开发 MVC 3 应用程序,我已设法使用部分 View 创建动态创建的文本框,并对这些动态框进行验证,但是,我想检查这些动态文本框是否已更改并将隐藏字段值更改为因此,我使用以下代码来检测文本框上的任何更改,它在任何已存在的文本框上都可以正常工作,但在动态创建的文本框上不起作用:

<script type="text/javascript">
    $(document).ready(function () {
        $("input[type='text']").change(function () {
            $("#FormState").val('dirty');
        });
    });
</script>

有没有办法用 JavaScript 来做到这一点?

最佳答案

您想要做的事情称为事件委托(delegate)。 jQuery 目前提供三种方式进行事件委托(delegate),即 livedelegateon

另一个答案建议使用live,但它和delegate已被弃用,这是有充分理由的。他们有一些性能问题。您应该使用 on 进行事件委托(delegate)。为了最好地使用它,您需要为其提供这些输入的合理父元素。尝试选择与您的所有输入最接近的父级。

$('#parent-id').on('change', 'input[type="text"]', function () {
    $("#FormState").val('dirty');
});

关于c# - 检查动态创建的文本框是否被 Javascript 弄脏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515200/

相关文章:

c# - 如何使用 SolrNet 访问多值动态字段?

c# - 如何在 WriteJson 期间删除属性

javascript - 如果我通过 JavaScript 在页面中添加内容,搜索引擎蜘蛛是否可以抓取它

javascript - 全屏标题图片

asp.net-mvc - 错误 System.Web.HttpCompileException (0x80004005)

asp.net-mvc - ASP.NET MVC 和友好的 URL

c# - 确认信息

javascript - 使用 webpack output.target 选项创建 ES6 模块 'equivalent'

c# - 在 Startup.cs 中使用 DI 解析服务

c# - foreach文件夹中的文件,重命名并保存