Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在验证和提交之前,从输入值中删除文字_Javascript_Jquery_Forms_Maskedinput - Fatal编程技术网

Javascript 在验证和提交之前,从输入值中删除文字

Javascript 在验证和提交之前,从输入值中删除文字,javascript,jquery,forms,maskedinput,Javascript,Jquery,Forms,Maskedinput,我有一个带有必填电话号码字段的表单,它与maskedinput插件类似 (999)999-9999 我希望jquery验证忽略文本,以便对此进行验证。另外,我希望在提交表单之前删除文本。但是如果有一个验证错误,我仍然希望maskedinput插件被激活,这样格式对于用户来说仍然是正确的 我想我可以编辑用于验证的正则表达式,但是当表单提交时,文本仍然会在那里 让我知道我需要更好地解释这一点 有什么想法吗?我对jquery非常陌生,所有这些详细的解决方案都会很好 我的javascript代码如下 $

我有一个带有必填电话号码字段的表单,它与maskedinput插件类似

(999)999-9999

我希望jquery验证忽略文本,以便对此进行验证。另外,我希望在提交表单之前删除文本。但是如果有一个验证错误,我仍然希望maskedinput插件被激活,这样格式对于用户来说仍然是正确的

我想我可以编辑用于验证的正则表达式,但是当表单提交时,文本仍然会在那里

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

有什么想法吗?我对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”的函数

职能:

function handleInputKeyUp(e){    

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

此代码从输入字段中删除除数字和-以外的所有字符。

您可能希望转义
+
字符。@DavidThomas不是如果您想输入电话号码,可以使用它,但不转义它是一个regexp特殊字符?或者我遗漏了什么,还是有点早…你能准确地把需要添加的内容放在主脚本中,放在哪里吗?抱歉,javascript还不太好
function handleInputKeyUp(e){    

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