首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript验证onblur

Javascript验证onblur
EN

Stack Overflow用户
提问于 2015-04-02 15:36:55
回答 3查看 548关注 0票数 0

我为两个文本框编写了两次相同的javascript,但它同时为一个文本框运行脚本,我只需要编写一次,然后为更多的文本框调用相同的脚本。

代码语言:javascript
复制
    function checkalphabets() {
    var pattern = /^[a-zA-Z\s]+$/;
    if (!pattern.test(myTextBox.value)) {
        modal({
            type: 'warning',
            title: 'Warning',
            text: 'Only Alphabets allowed!',
            center: false,
             callback: function(){ $("#myTextBox").focus();}
        });

        exit;
        return false;
    }
    return true;

}
function checkalphabets1() {
    var pattern = /^[a-zA-Z\s]+$/;
    if (!pattern.test(TextBox1.value)) {
        modal({
            type: 'warning',
            title: 'Warning',
            text: 'Only Alphabets allowed!',
            center: false,
             callback: function(){ $("#TextBox1").focus();}
        });

        exit;
        return false;
    }
    return true;

}
 $('.modal-btn').click(function() {

        $('#modal-window').hide();

    });

这是fiddle

EN

回答 3

Stack Overflow用户

发布于 2015-04-02 15:47:42

您可以将需要检查的元素作为函数的参数传递:

代码语言:javascript
复制
function checkalphabets($el) {
    var pattern = /^[a-zA-Z\s]+$/;
    if (!pattern.test($el.val())) {
        modal({
            type: 'warning',
            title: 'Warning',
            text: 'Only Alphabets allowed!',
            center: false,
             callback: function(){ $el.focus();}
        });

        return false;
    }
    return true;
}

元素在被调用时被传递,并且对元素进行检查。

代码语言:javascript
复制
checkalphabets($("#TextBox1"));
票数 0
EN

Stack Overflow用户

发布于 2015-04-02 15:48:26

在你的代码中,textbox1和mytextbox是未定义的。将元素传递给函数以定义它们:

代码语言:javascript
复制
function checkalphabets(myinput) {
    var pattern = /^[a-zA-Z\s]+$/;
    if (!pattern.test(myinput.value)) {
        modal({
            type: 'warning',
            title: 'Warning',
            text: 'Only Alphabets allowed!',
            center: false,
             callback: function(){ $(myinput).focus();}
        });

        exit;
        return false;
    }
    return true;
}

 $('.modal-btn').click(function() {

        $('#modal-window').hide();

    });

另外,我建议使用onkeyup而不是onblur来检查每个字符:

代码语言:javascript
复制
<input name="myTextBox" type="text" id="myTextBox" onkeyup="checkalphabets(this)" />
<input name="TextBox1" type="text" id="TextBox1" onkeyup="checkalphabets(this)" />

此外,在警告后减去不允许的字符也是一个好主意。

票数 0
EN

Stack Overflow用户

发布于 2015-04-02 15:51:29

您是否可以考虑将this值作为输入传递给Javascript中的函数,并从该变量中提取值,如下所述?

HTML:

代码语言:javascript
复制
<form method="post" action="test.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJODIwMTY2MjU3ZGQVs14nJwqB/iIms8CsXW3SCzs22w==" />
</div>

<div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="75BBA7D6" />
</div>
    <div>
        <input name="myTextBox" type="text" id="myTextBox" onblur="checkalphabets(this)" />
        <input name="TextBox1" type="text" id="TextBox1" onblur="checkalphabets(this)" />   
    </div>
    </form>

Javascript:

代码语言:javascript
复制
function checkalphabets(thisValue) {
    var pattern = /^[a-zA-Z\s]+$/;
    if (!pattern.test(thisValue.value)) {
        modal({
            type: 'warning',
            title: 'Warning',
            text: 'Only Alphabets allowed t1 & t2!',
            center: false,
             callback: function(){ $(thisValue).focus();}
        });

        exit;
        return false;
    }
    return true;
}
 $('.modal-btn').click(function() {
        $('#modal-window').hide();
    });

像wise一样,您可以对任意数量的文本框使用相同的方法!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29407496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档