jquery замаскированный ввод на загруженный контент - PullRequest
4 голосов
/ 02 ноября 2011

Итак, у меня есть Joomla!страница, которая частично генерируется функциями, основанными на пользователе.Таким образом, части форм, которые мне нужны для использования «плагина маскируемого ввода», загружаются через функции загрузки страницы.Проблема, с которой я столкнулся, заключается в том, что над полями, которые являются стандартным HTML на странице, плагин работает нормально, но с полями, сгенерированными моими функциями php, поля блокируются и не допускают никакого ввода.Я предполагаю, что это проблема с функциями php, извлекающими формы после запуска плагина jquery, но я попытался поместить вызов .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>

Ответы [ 3 ]

5 голосов
/ 18 апреля 2012

Все, что вам нужно сделать, это прикрепить привязку события, используя метод jQuery .on, и любой динамически созданный элемент будет подключен к этому событию.

Я ответил на аналогичный вопрос здесь https://stackoverflow.com/a/10203361/12442

0 голосов
/ 14 ноября 2015

Динамическая 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();
            }
0 голосов
/ 02 ноября 2011

Я думаю, что поскольку содержимое загружается динамически, вам нужно использовать. live

Я не знаю, как использовать .live с .mask.

Естьтоже альтернатива.Вы можете поместить .mask-код в функцию обратного вызова динамической загрузки.

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