在ajax返回显示后,jQuery调用iMask

时间:2012-01-19 10:02:09

标签: jquery ajax

目前我正在使用iMask脚本来帮助对我的利率输入进行屏蔽和健全性检查。当在页面上同时加载所有输入时,它工作得很好。但是,当我使用ajax调用动态添加新输入时,iMask脚本不会监视这些输入。

我加载了这个输入:

<input type="text" id="interestRate" size="25" class="numeric" name="interestRate" value=""/>

并使用底部的代码加载iMask:

<script type="text/javascript">
    jQuery('.numeric').iMask({
          type: 'number'             
         ,sanity : function( val ){
            if(val.length > 5){
                return val.substr(0,5);
            }else{
                return val;
            }
        }
    });

这很好用。但是,如果我使用ajax附加一行新数据,并为interestRate添加额外的输入,那么这些新输入将不会被iMask屏蔽。

我想知道无论如何我可以让ajax返回的html与iMask函数一起'分配'。

Thanx

1 个答案:

答案 0 :(得分:0)

我相信你必须在使用Ajax插入的所有新元素上调用iMask函数。小心不要为已经iMasked的元素调用它,不确定iMask是否可以优雅地处理它。

我就是这样做的:

var alreadyIMasked = $('.numeric'); // save already iMasked elements before an ajax call
$.ajax({
  url: '...',
  success: function( data ) {
    $(".some_list").append(data); // append your new elements to the list
    $('.numeric').not(alreadyIMasked).iMask({.....});
  }
});