使用Javascript检查动态创建的文本框是否变脏

时间:2012-11-22 14:50:29

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

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

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

有没有用javascript做到这一点?

2 个答案:

答案 0 :(得分:3)

您要执行的操作称为事件委派。 jQuery目前提供三种方式来进行事件委派,包括livedelegateon

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

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

答案 1 :(得分:2)

使用:

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

JQuery Live