gpt4 book ai didi

javascript - 带有输入掩码的 jQuery 验证

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:40 25 4
gpt4 key购买 nike

有这个问题,带有指定掩码(作为占位符)的表单输入没有被 jQuery 验证验证为空。

我使用:

一些奇怪的行为:

  1. 具有属性 required 的输入被(由 jQuery)验证为非空因此有效,但另一方面,输入不被视为“非空”并且不检查其他验证规则(这由 validator.js 提供)
  2. 当我在输入字段中写入内容然后将其删除时,我收到required 错误消息

谁能给我一些提示?

编辑:相关代码:

HTML/PHP:

<form enctype="multipart/form-data" method="post" id="feedback">
<div class="kontakt-form-row form-group">
<div class="kontakt-form">
<label for="phone" class="element">
phone<span class="required">*</span>
</label>
</div>
<div class="kontakt-form">
<div class="element">
<input id="phone" name="phone" ' . (isset($user['phone']) ? 'value="' . $user['phone'] . '"' : '') . ' type="text" maxlength="20" class="form-control" required="required" data-remote="/validator.php">
</div>
</div>
<div class="help-block with-errors"></div>
</div>
</form>

JS:

$(document).ready(function() {

$('#phone').inputmask("+48 999 999 999");

$('#feedback').validator();
});

最佳答案

我通过激活 clearIncomplete 设法使用 RobinHerbots 的 Inputmask (3.3.11) 和 jQuery Validate。参见 Input mask documentation dedicated section :

Clear the incomplete input on blur

$(document).ready(function(){
$("#date").inputmask("99/99/9999",{ "clearIncomplete": true });
});

个人而言,如果可能的话,我更喜欢通过 HTML 数据属性来设置:

data-inputmask-clearincomplete="true"

缺点是:部分输入会在失去焦点时被删除,但我可以接受。所以也许你也是......

编辑:如果您需要将掩码验证添加到其余的 jQuery 验证过程中,您可以通过执行以下操作来模拟 jQuery 验证错误:

// Get jQuery Validate validator currently attached
var validator = $form.data('validator');

// Get inputs violating masks
var $maskedInputList
= $(':input[data-inputmask-mask]:not([data-inputmask-mask=""])');
var $incompleteMaskedInputList
= $maskedInputList.filter(function() {
return !$(this).inputmask("isComplete");
});
if ($incompleteMaskedInputList.length > 0)
{
var errors = {};
$incompleteMaskedInputList.each(function () {
var $input = $(this);
var inputName = $input.prop('name');
errors[inputName]
= localize('IncompleteMaskedInput_Message');
});

// Display each mask violation error as jQuery Validate error
validator.showErrors(errors);

// Cancel submit if any such error
isAllInputmaskValid = false;
}

// jQuery Validate validation
var isAllInputValid = validator.form();

// Cancel submit if any of the two validation process fails
if (!isAllInputValid ||
!isAllInputmaskValid) {
return;
}

// Form submit
$form.submit();

关于javascript - 带有输入掩码的 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32581404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com