我使用jquery蒙面输入插件,需要一个具有以下格式的手机字段:
1 (222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
$("#myPhone").mask("9 (999) - 999 - 9999");
Run Code Online (Sandbox Code Playgroud)
现在我似乎无法让它工作,使第一个数字可选,但其余的强制性.所以以下数字是有效的:
1 (222) - 000 - 1114
(222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)
以下数字无效
1 (222) - 000 - 11
(222) - 00 - 0011
Run Code Online (Sandbox Code Playgroud)
使用"?9(999) - 999- 9999"将不起作用,因为它使整个事物成为可选的
如果这不能在蒙面中完成,有人可以通过正则表达式来帮助我实现这一目标吗?
我有一个角度形式,成功使用角度的内置验证.以下面的标记为例:
<form name="numberForm" novalidate>
<input type="text" required />
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
浏览器加载时,输入字段会像这样呈现(删除了不必要的属性):
<input class="ng-pristine ng-invalid ng-invalid-required" />
Run Code Online (Sandbox Code Playgroud)
如果我在输入字段中输入值,则标记变为:
<input class="ng-dirty ng-valid ng-valid-required" />
Run Code Online (Sandbox Code Playgroud)
所有这一切都很有效.然后我实现了两个jQuery插件来实现窗体的一些屏蔽/输入格式: autoNumeric和jQuery.maskedinput.现在,我所做的一切都不会改变ng-pristine ng-invalid...输入上的原始类.它似乎也不允许模型的绑定成功.
有任何想法吗?
我尝试创建一个http://jsfiddle.net/ma44H/3/,但似乎无法弄清楚如何让它工作.
给定使用Masked Input插件屏蔽的文本框,并通过Validation Plugin将其标记为必填字段,请考虑以下事项:
如果你将焦点放在一个被屏蔽的文本框中,然后保留它而不输入任何信息(或者不输入足够的信息来满足掩码),屏蔽输入插件将删除所有内容,留下一个空文本框.
$("#phoneNumber").mask("(999) 999-9999? x999999");
$("#sampleForm").validate({
rules: {
phoneNumber: "required"
}
});
Run Code Online (Sandbox Code Playgroud)
验证插件似乎在屏蔽输入插件之前触发了模糊事件.这导致文本框传递验证(因为它确实包含文本),然后屏蔽输入插件启动并删除文本.一旦失去焦点,该字段应标记为无效.
我尝试过使用正则表达式验证器.它靠拢,但同样,因为它触发蒙面输入插件清理了现场之前它显示一个错误,当它不应该(虽然该错误消失,当用户试图提交表单).
我也试过这个:
$('input').bind('unmasked.maskedInput', function () { $(this).valid(); });
Run Code Online (Sandbox Code Playgroud)
这有效,但它也会干扰验证器的初始行为:在按下提交按钮之前不会验证字段,然后在失去焦点时验证它们.
我已经设置了一个描述我遇到的问题的jsFiddle.
我正在设立一个捐款页面供人们向非营利组织捐款,并允许他们指定货币的用途.我设置它总计了当输入金额时给予者在每个字段中的金额.我试图在每个字段中添加一个输入掩码,但它只是让我的JavaScript崩溃而不做任何事情.这是我目前拥有的代码在任何掩码之前完美运行:
<script src="/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function() {
var calcTot = function() {
var sum = 0;
$('.toTotal').each( function(){
sum += Number( $(this).val() );
});
$('#giveTotal').val( '$' + sum.toFixed(2) );
}
calcTot();
$('.toTotal').change( function(){
calcTot();
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
'toTotal'是给所有需要加起来的输入框的类名; 这也是需要面具的类.'giveTotal'是总字段的id.
我尝试过在StackOverflow和其他网站上找到的几种变体.
完整代码:
<html>
<head>
<script src="/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function() {
//This is one of the masking codes I attempted.
$('.toTotal').mask('9.99', {reverse: true});
//other options I have tried:
//$('.toTotal').mask('9.99');
//$('.toTotal').mask('0.00');
//$('.toTotal').inputmask('9.99');
//$('.toTotal').inputmask('mask', {'mask': '9.99'});
var calcTot = function() {
var …Run Code Online (Sandbox Code Playgroud) 我正在使用angular2创建一个应用程序。
我需要使用日历弹出窗口从用户输入中获取日期,但是我需要在用户输入上放置一个掩码,以使其在键入时保持dd-mm-YYYY的格式。
我正在使用从Web ng-bootstrap和angular2-text-mark获得的两个不同模块
<input [textMask]="{mask: mask}" type="text" class="form-control" placeholder="yyyy-mm-dd"
name="dp" [(ngModel)]="date" ngbDatepicker #d="ngbDatepicker">
Run Code Online (Sandbox Code Playgroud)
当我在同一标签上使用textMask和ngbDatepicker时,出现此错误
错误:多个自定义值访问器与具有未指定名称属性的表单控件匹配。
有办法做这种事情吗?
谢谢
我正在使用JQuery Masked输入插件.
$("#percent").mask("99.99?9");
Run Code Online (Sandbox Code Playgroud)
这允许数字 10.999, 10.99, 01.999, 01.99
我想要实现的是我不希望用户输入01.99.相反,如果用户键入1.99我想0前1自动添加.这是我开始但不知道如何继续:
//assume i typed in field 11.99
$(document).on('keyup', '#percent', function(evt) {
var input = $(this).val();
alert(input); // 11.99_
if(evt.which == '190' || evt.which == '110') {
//if dot is clicked
alert(parseInt(input)); // 11
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,警报输入11.99_在末尾打印下划线,因为第三个值是可选的,我没有输入它.
现在,这个值是完全正常的,但如果用户输入的1.99,将不能因为它会自动移动9对1与填满它2的数字,所以它会作为回报19.9,这是无效的,因为必须有2定义如上小数.因此,在我的if语句中,我希望能够检测输入的内容是否小于10,如果小于10小数点,则0在开头添加.
好的,我发现了一个修复underscore _:
$("#percent").mask("99.99?9", {placeholder: ""}) …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery Masked Input插件来设置所有输入元素,并将数据掩码属性定义为属性掩码值:
给出这个HTML:
<input type='text' id="a" data-mask='999?999' />
<input type='text' id="b" data-mask='999' />
Run Code Online (Sandbox Code Playgroud)
这个脚本:
$("input[data-mask]").each(function() {
var maskValue = $(this).data('mask');
console.log($(this).attr('id') + ": " + maskValue);
//undefined error here on second iteration "b: 999"
//no issues if you remove the data-mask from one of the input elements
return $(this).mask(maskValue);
});
Run Code Online (Sandbox Code Playgroud)
第二次迭代抛出一个错误:"未捕获的TypeError:undefined不是函数"在这一行,说'split'没有定义.
firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
Run Code Online (Sandbox Code Playgroud)
但是这个代码工作正常,掩码设置没有问题.
$('#a').mask('999?999');
$('#b').mask('999');
Run Code Online (Sandbox Code Playgroud)
任何人都可以对这种奇怪的行为发光吗?
大家下午好
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="{{ asset('bundles/reflorestasite/js/jquery.maskedinput.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/reflorestasite/js/validacoes.js') }}"></script>
<script type="text/javascript" src="{{ asset_url }}"></script>
Run Code Online (Sandbox Code Playgroud)
在"validacoes.js"文件中有
$(document).ready(function(){
$(".cpf").mask("999.999.999-99");
$('.cpf').blur(function () {
var id=$(this).attr("id");
var val=$(this).val();
var pattern = new RegExp(/[0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2}/);
if(val.match(pattern) == null){
$("#"+id+"_error").html("Digite um CPF válido");
}
});
});
Run Code Online (Sandbox Code Playgroud)
我已经在控制台验证了所有的javascript文件.但是我收到错误"Uncaught TypeError:$(...).mask不是函数"
有没有人知道为什么symfony没有识别maskedinput插件?
非常感谢你.
我正在为两个字段使用蒙面插件.一个是加拿大邮政编码(T5T 5T5),另一个是电话号码(999-999-9989).两个面具在桌面上都能正常工作 如果您在手机上打开相同的代码,则会出现此问题.当用户键入邮政编码1时,光标一直跳到光标的开头.
这是代码:
HTML:
<input type="text" id="someID" /> (T9T 1A1)
<br />
<span id="result"></span>
<br /><br />
<input type="text" id="someOtherID" /> (999-999-9999)
<br />
<span id="result1"></span>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
$("#someID").mask("a9a 9a9");
$("#someID").on('keyup', function() {
var actualValue = $(this).val().replace(/[_-\s]/g, '').length;
if (actualValue === 0 || actualValue !== 6) {
$("#result").text("not valid")
} else {
$("#result").text("valid")
}
});
$("#someOtherID").mask("999-999-9999");
$("#someOtherID").on('keyup', function() {
var actualValue = $(this).val().replace(/[_-\s]/g, '').length;
if (actualValue === 0 || actualValue !== 10) {
$("#result1").text("not valid")
} else {
$("#result1").text("valid")
} …Run Code Online (Sandbox Code Playgroud) 如何通过使用 js 库imask.js或使用纯 javascript 在默认情况下将双零附加到价格末尾来进行输入屏蔽:3.380.321,00 $
var currencyMask = IMask(
document.getElementById('price'),
{
mask: '$num',
blocks: {
num: {
mask: Number,
thousandsSeparator: '.'
}
}
});
var currencyMask = IMask(
document.getElementById('price2'),
{
mask: 'num$',
blocks: {
num: {
mask: Number,
thousandsSeparator: '.'
}
}
});Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/imask"></script>
<input type="text" id="price" value="2700300.21">
<hr>
<p>Needed masking: 3.380.321,00 $</p>
<input type="text" id="price2">Run Code Online (Sandbox Code Playgroud)
maskedinput ×10
javascript ×8
jquery ×7
angular ×1
angularjs ×1
html5 ×1
input ×1
input-mask ×1
jquery-mask ×1
masking ×1
ng-bootstrap ×1
price ×1
symfony ×1