在验证之前从输入值中删除文本并提交

Remove literals from input value before validation and submit

本文关键字:删除 文本 提交 输入 验证      更新时间:2023-09-26

>我有一个带有必填电话号码字段的表单,看起来像这样,带有屏蔽输入插件

(999) 999-9999

我希望jquery验证忽略文字以验证这一点。 另外,我希望在提交表单之前删除文字。 但是,如果存在验证错误,我仍然希望激活屏蔽输入插件,以便格式对用户来说仍然正确。

我想我可以编辑正则表达式以进行验证,但是当提交表单时,文字仍将在那里。

让我知道我需要更好地解释这一点。

有什么想法吗? 我对jquery很陌生,所有如此详细的解决方案都会很棒。

我的JavaScript代码是这样的

$(document).ready(function(){

    jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/'s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 &&
    phone_number.match(/^(1-?)?('([2-9]'d{2}')|[2-9]'d{2})-?[2-9]'d{2}-?'d{4}$/);
    }, "US Phone Number Required");

    $("#valform").validate({
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            $("#error-message").show().text("Please correct the required field(s)");
        } else {
            $("#error-message").hide();
        }
    },
    messages: {
        phone: {
            required: ""
        }
    },
    rules: {
        phone: {
            required: true,
            phoneUS: true
        },
        },
     });

    $("#phone").mask("(999) 999-9999",{placeholder:"  "});

    });

您可以在使用 js 提交表单之前删除其他字符

此代码将在输入后立即从输入中删除禁止字符。

输入字段具有类"数字"。这会将"keyup"事件绑定到该输入字段,并调用名为"handleInputKeyUp"的函数

 $(".numbers").bind("keyup", handleInputKeyUp);

该函数:

function handleInputKeyUp(e){    
    var temp = e.currentTarget.value;
                temp = temp.replace(/[^'d-]/g, "");
                e.currentTarget.value = temp;
    }

此代码从输入字段中删除除数字和 - 之外的所有内容。