如何为true和false添加输入文本验证?

时间:2016-04-19 17:34:33

标签: javascript jquery

朋友们,我无法弄清楚如何为admin var添加文本验证。 点是用户在表单中输入01truefalse。检查数字是可以的,但是我无法对文本输入进行有效检查,例如true-e-e-e,fasleee,abra-cadabra等。

    <script type="text/javascript">
    function submitEmployeeForm() {             

        // getting the employee form values
        var name = $('#name').val().trim();
        var age = $('#age').val();
        var admin = $('#admin').val();
        if(name.length ==0) {
            alert('Please enter name');
            $('#name').focus();
            return false;
        }

        if(age <= 0) {
            alert('Please enter valid age');
            $('#age').focus();
            return false;
        }

        if(admin < 0 || admin > 1)  {
            alert('Please enter 0 for false, 1 for true');
            $('#admin').focus();
            return false;
        }
        return true;
    };  
</script>

我尝试了以下两个选项:

!admin.isEqual("false") || !admin.isEqual("true")

admin.valueOf()!="true" || admin.valueOf()!="false"

因此它不会传递任何文本,包括true和false。

3 个答案:

答案 0 :(得分:2)

如果您只想接受'0','1','true','false'有效,请使用类似

的内容
if (['0','1','false','true'].indexOf(admin.toLowerCase()) === -1) {
        alert('Please enter 0 for false, 1 for true');
        $('#admin').focus();
        return false;
}

我们要做的是创建一个包含有效文本的数组,然后使用indexOf(parameter)在数组中搜索与传递的参数匹配的任何元素。如果找到它,则返回在数组中找到的位置,否则返回-1。所以在你的情况下,如果它是-1,这意味着传递的值不是被接受的值,那就做你的事。

或者,您可以使用复选框而不是文本框,只测试checked属性是否为真。

答案 1 :(得分:0)

试试以下内容:

if (admin == true || admin == false || admin == "true" || admin == "false") {
    //if you want to convert -> convert it, and send to server
} else {
    //Wrong input
}

(更多here。 如果使用==而不是===)

,这是值的相等表

答案 2 :(得分:0)

为什么你不只是检查它是1,0,是或否但是使用逻辑AND这样:

if(admin != 0 && admin != 1 && admin != "true" && admin != "false"){
    alert('Please enter 0 for false, 1 for true');
    $('#admin').focus();
    return false;
}