【问题标题】:Create custom validator to check if the input is a string in Parsley创建自定义验证器以检查输入是否是 Parsley 中的字符串
【发布时间】:2019-09-21 10:17:25
【问题描述】:

我想创建一个自定义验证器来检查输入是否是字符串而不是数字。示例:我在输入中输入 2 它应该显示错误消息,并且当我输入 data-parsley-name

时会触发它
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript" src="js/parsley.min.js"></script>

<input type="text" id="f_name" name="f_name" placeholder="Enter First Name" data-parsley-required="true" data-parsley-trigger=" focusout" data-parsley-name>
window.Parsley.addValidator('name', {
        requirementType: 'string',
        validateString: function(value) {
            if(isNaN(value)){
                return value;
            }
        },
        messages: {
          en: 'Enter a Valid Name',

        }
      });

【问题讨论】:

    标签: javascript jquery parsley.js


    【解决方案1】:

    我发现我可以使用 data-parsley-pattern="^[a-zA-Z]+$"

    【讨论】:

    • 很高兴看到您自己得到了答案。祝你好运:)
    【解决方案2】:

    使用jQuery的.isNumeric()https://api.jquery.com/jQuery.isNumeric/

        validateString: function(value) {
            if($.isNumeric(value) == false){
                return value;
            }
        }
    

    【讨论】:

    • @GioGarcia 你确定验证器真的被触发了吗?
    【解决方案3】:

    在你的验证器函数中改变这个:

    validateString: function(value) {
            if(value === "" + value){
                return value;
                console.log(this.messages.en);
            }
        }
    

    但如果您想验证数字,请使用以下代码:if(Number(value) === value);

    Number(value) 正在将您的价值转化为数字。如果它等于您的输入,它将返回并打印消息。

    【讨论】:

    • 仍然无法正常工作,我正在尝试验证它是否不是字符串。
    • 如果我输入数字仍然不工作它仍然不显示错误消息
    • 我也对此进行了更新。但是你可以写任何你想要的。
    • 仍然不工作..你可以重做我的代码..我认为我的意思是如果输入是数字那么它将显示消息。 $.isNum() 或 isNaN() 可以工作吗?
    • @RobertHovhannisyan 它来自特定来源,正在验证的input type="text" 其值始终是字符串,即使所有字符都是数字("123" === ""+"123") 评估为真
    猜你喜欢
    • 2023-04-09
    • 2018-08-18
    • 2015-06-24
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多