4

所以我有一个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>

THIS ONE DOESN'T --> 这个函数 -->

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

以这种形式加载 -->

<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>
4

3 回答 3

5

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

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

于 2012-04-18T05:36:06.753 回答
0

我认为由于内容是动态加载的,因此您需要使用 . 居住

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

还有一个替代方案。您可以将 .mask 代码放在动态加载的回调函数中。

$("#dynamicContent").load("loadFromMe.php",function(){
    $("#subNumber").mask("(999) 999-9999");
    $(".numFix").mask("(999) 999-9999");
});
于 2011-11-01T22:44:06.367 回答
0

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

$(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();
            }
于 2015-11-14T05:22:53.733 回答