对照数组脚本检查文本框中的值不起作用

Checking value in textbox against an array script not working

本文关键字:不起作用 文本 数组 脚本 检查      更新时间:2023-09-26

我有一个脚本,我正在对照一个数组检查文本框中的值,该数组都是下拉列表中的值。似乎无法使其发挥作用。谢谢

<script type = "text/javascript">
    function chkName() {
        var ddlArray = new Array();
        var ddl = document.getElementById('DropDownList1');
        for (i = 0; i < ddl.options.length; i++) {
            ddlArray[i] = ddl.options[i].value;
        }

        var str = document.getElementById("TextBox1").value;
        str = str.replace(/^'s+|'s+$/g, ""); // strip leading and trailing spaces
        str = str.toLowerCase().replace(/'b[a-z]/g, function (w) {
            return w.toUpperCase()
        }); // reformat to lower-case with initial capital
        var match = false;
        for (var i = 0; i < ddlArray.length; i++) {
            if (str == ddlArray[i]) {
                match = true;
            }
        }
        if (match) {
            alert("The name " + str + " does  match our list!");
            document.getElementById("TextBox1").value = "";
            return false;
        } else {
            return true;
        }
    }
</script>

试试这个:

function chkName() {
    "use strict";
    var ddlArray = [],
        ddl = document.getElementById('DropDownList1'),
        str = document.getElementById("TextBox1").value,
        match = false;
    for (var i = 0; i < ddl.options.length; i++) {
        ddlArray[i] = ddl.options[i].value;
    }
    str = str.replace(/^'s+|'s+$/g, "");
    str = str.toLowerCase().replace(/'b[a-z]/g, function( w ) {
        return w.toUpperCase();
    });
    for (i = 0; i < ddlArray.length; i++) {
        if ( str === ddlArray[i] ) {
            alert("The name " + str + " does  match our list!");
            document.getElementById("TextBox1").value = "";
            return false;
        }
    }
    return true;
}