jquery屏蔽了加载内容的输入

时间:2011-11-01 20:44:28

标签: jquery plugins maskedinput

所以我有一个joomla!部分由基于用户的功能生成的页面。因此,我需要使用“屏蔽输入插件”的部分表单是通过页面加载时的函数加载的。我的问题是,在页面上标准HTML的字段上,插件工作正常但在我的php函数生成的字段上,字段锁定并且不允许任何输入。我的猜测是,在jquery插件触发后,php函数拉入表单是一个问题但是我尝试将.mask调用放在$(document).ready中并且没有运气。

这是一个片段......

jQuery(function($){
  $("#subNumber").mask("(999) 999-9999");
$(".numFix").mask("(999) 999-9999");
});

这项工作 - >

<form name = "subAct" id = "subAct" method="post">
<div class="col1"><input class="subaccountname" name="subName" type="text" id="subName"/></div>
<div class="col2"><input class="subaccountnumber" name="subNumber" type="text" id = "subNumber"/></div>
<div class="col3"><a href="javascript:submit()" class="buttonaddsub" id ="addSubBut">Add a New Account</a></div>
</form>

这一个没有 - &gt; 这个功能 - &gt;

<?php dashboardFunction::displaySubAccount($uid) ?>

以此形式加载 - &gt;

<form name = "add_reg_num_<?php echo $pin ?>" id = "add_reg_num_<?php echo $pin ?>" method="post">
<div class="regisnumberadd"><input name="regNum" type="text" class = "numFix" />
<input name="regNumPin" type="hidden" value = "<?php echo $pin ?>"/>
</div>
<div class="clear"></div>
<div class="addregisnum"><a href="javascript:;" onClick="subRegNum(<?php echo $pin ?>)">Add Number</a></div>
</form>

3 个答案:

答案 0 :(得分:5)

您需要做的就是使用jQuery .on方法附加事件绑定,任何动态创建的项目都将连接到该事件。

我在这里回答了类似的问题https://stackoverflow.com/a/10203361/12442

答案 1 :(得分:0)

我认为,由于内容动态加载,您需要使用。live

我不知道如何使用.live与.mask。

还有另一种选择。您可以将.mask代码放在动态加载的回调函数中。

$("#dynamicContent").load("loadFromMe.php",function(){
    $("#subNumber").mask("(999) 999-9999");
    $(".numFix").mask("(999) 999-9999");
});

答案 2 :(得分:0)

动态Jquery输入掩码解决方案(以编程方式进行swicth掩码)

$(document).ready(function () {
        $("[data-mask]").inputmask();
        // Do something exciting          
        var prm = Sys.WebForms.PageRequestManager.getInstance();

        prm.add_endRequest(function () {
            // re-bind your jQuery events here
            $("[data-mask]").inputmask();                
        });

    });


            if (is_loose == "True") {                    
                $("#it_qty").removeAttr("data-inputmask","'mask': '9{0,20}'");
                $("#it_qty").attr("data-inputmask", "'mask': '9{0,20}.9{0,2}'");

                $("[data-mask]").inputmask();

            } else {

                $("#it_qty").removeAttr("data-inputmask", "'mask': '9{0,20}.9{0,2}'");
                $("#it_qty").attr("data-inputmask", "'mask': '9{0,20}'");
                $("[data-mask]").inputmask();
            }