Ввод по маске

P

Podbelski

Member
26.09.2015
6
0
Потребовалось сделать маску для поля моб. телефона.
База использует Bootstrap.
Попытался сделать как тут:
Но почему-то это не пашет с Bootstrap'ом.
Меняю тему на XOMINO (как в их тестовой базе), все работает.
Может кто вешал маску на Bootstrap?
 
R

romych2004

Ну тут дело не в бутстрап.. а в кривом гайде и кривой библиотеке

Гайд кривой, потому что использовали jquery 1.7 с устаревшей функцией - jQuery.browser, которая была удалена с версии 1.9

Библиотека кривая, потому что она для jquery 1.3(сейчас домино использует примерно 2.1) :)

Советую:
1) Найти более свежую версию этой библиотеки
2) Найти другую библиотеку. При этом вам не нужно искать специально для XPages. Весь client-side javascript является для всех одинаковым, смотрите только на версии. Можно ввести в гугле "jquery input mask plugin"
3) Самый непредпочтительный вариант - костылить.. Вам необходимо определить функцию на проверку браузер IE или нет. Пример:
JavaScript:
function msieversion() {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { // If Internet Explorer, return version number
        return true;
    } else { // If another browser, return 0
        return false;
    }
}
Далее необходимо заменить в самой библиотеке проверку "a.browser.msie" на вызов нашей новой функции - "msieversion()"

И на будущее - советую смотреть консоль браузера
Если что непонятно - спрашивай
 
P

Podbelski

Member
26.09.2015
6
0
Спасибо, буду пробовать
 
V

victorhalf

Well-known member
29.05.2007
79
2
Потребовалось сделать маску для поля моб. телефона.
База использует Bootstrap.
Попытался сделать как тут:
Но почему-то это не пашет с Bootstrap'ом.
Меняю тему на XOMINO (как в их тестовой базе), все работает.
Может кто вешал маску на Bootstrap?
Понимаю, что тема старая, но недавно для себя решал этот вопрос, решил написать, вдруг кому пригодиться.
Использовал тот же плагин, что и в статье из xomino.com (jquery.maskedinput.js последней версии - 1.4.1 из ).
1) использую ExtentionLibrary, так что jQuery 2.1.1 автоматом подключается.
плагин выложил на сервере в \domino\html\jquery\jquery.maskedinput.min.1.4.1.js.
в плагине заменил
"function"===typeof define&&define.amd? на
"function"===typeof define&&false?
2) в XPages на родительской страничке добавил плагин как ресурс:
<xp:this.resources>
<xp:script
src="/.ibmxspres/domino/jquery/jquery.maskedinput.min.1.4.1.js" clientSide="true">
</xp:script>
</xp:this.resources>
3) поля для ввода телефонов у меня на отдельном кастом контроле, там добавил
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
jQuery(function($){
x$("#{id:inputText10}").mask("+38(099) 999 99 99");
x$("#{id:inputText9}").mask("+38(099) 999 99 99");
x$("#{id:inputText12}").mask("99 - 999");
x$("#{id:inputText11}").mask("99 - 99");
});
]]>
</xp:this.value>
</xp:scriptBlock>

вот собственно и всё, всех благ
 
V

victorhalf

Well-known member
29.05.2007
79
2
возможно лучше - в проект БД
возможно и лучше,
вот только я не умею подключать js файлы в качестве ресурсов на страницу или что-то не правильно делал, короче не взлетело.
 
A

alexas1

Lotus team
10.04.2014
1 109
216
возможно и лучше,
вот только я не умею подключать js файлы в качестве ресурсов на страницу или что-то не правильно делал, короче не взлетело.
Слева, где Forms, Views etc... - Resources/Files/Import file resources - выбираешь твою библу
 
V

victorhalf

Well-known member
29.05.2007
79
2
Слева, где Forms, Views etc... - Resources/Files/Import file resources - выбираешь твою библу
А я пробовал через PackageExplorer, добавлял в WebContent/js.
Но как обычно дело оказалось в невнимательности - недоглядел, что в проект добавлял исходный файл с проверкой на амд, а на сервер ложил исправленный, поэтому и не взлетало.
 
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб