jquery 屏蔽加载内容的输入

发布于 2024-12-13 07:36:34 字数 1513 浏览 3 评论 0原文

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

这个没有 --> 这个功能-->

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

So I have a joomla! page that is partly generated by functions based on the user. So parts of the forms that I need to use the 'masked input plug-in' on are loaded via functions on page load. The issue I have is, on the fields that are standard HTML on the page, the plugin works fine but on the fields that are generated by my php functions, the fields lock up and don't allow any input. My guess is that it's an issue with the php functions pulling in the forms after the jquery plugin has fired but I tried placing the .mask call in a $(document).ready and no luck.

here's a snippet...

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

THIS WORKS -->

<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 -->
this function -->

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

loads in this form -->

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

∝单色的世界 2024-12-20 07:36:34

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

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

All you need to do is attach an event binding using jQuery .on method and any dynamically created item will be wired to that event.

I answered a similar question here https://stackoverflow.com/a/10203361/12442

段念尘 2024-12-20 07:36:34

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

我不知道如何使用 .与.mask一起生活。

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

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

I think since the content loads dynamicly you need to use .live

I don't know how to use .live with .mask.

There is also an alternative. You can put .mask code in callback function of dynamic loading.

$("#dynamicContent").load("loadFromMe.php",function(){
    $("#subNumber").mask("(999) 999-9999");
    $(".numFix").mask("(999) 999-9999");
});
黎歌 2024-12-20 07:36:34

动态 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();
            }

Dynamic Jquery Input mask Solution (swicth masking programatically)

$(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();
            }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文