JQuery检查值大小写

时间:2015-10-07 23:38:29

标签: jquery

我正在使用此代码检查数组中的重复值:

<?php
$return_arr = array();
$sql="SELECT * from customer where company <> '' group by company ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs)) {
    $return_arr[] = $result["company"];
}
$data = json_encode($return_arr);
?>
<script type="text/javascript">
$(document).ready(function(){
    $("#ViewExistingCustomer").hide();

    var company_array = <?php echo $data; ?>;

    $('#company').on('keyup',function() {
        if($.inArray($(this).val(), company_array) !== -1) {
            $("#ViewExistingCustomer").attr("href", "customers?seq=");
            alert("This company name already exists on another customer.");
        }
    });
});
</script>

我试图让它做两件额外的事情,我想检查数组中的值,无论它是什么情况以及输入的是什么情况。

此外,MySQL表格中有一个sequence,如何将其添加到我的href编辑代码行中,以便它显示?seq=然后在= {之后}它将是相关的来自数据库/数组的sequence

3 个答案:

答案 0 :(得分:1)

您可以为每个使用a并将两个值转换为小写,然后比较它们。如果$ return_arr分别将公司名称和序列存储在索引0和1中,如下所示,

readLines

然后,

$return_arr[0] = ["company_name_1", "sequence"];
$return_arr[1] = ["company_name_2", "sequence"];
$return_arr[2] = ["company_name_3", "sequence"];

答案 1 :(得分:0)

您可以将值转换为小写并检查它是否存在于数组中的某个位置,但您必须至少迭代其中的一些。

var duplicates = company_array.some(function(val){
    return val.toLowerCase()===$(this).val().toLowerCase();
});
if(duplicates){...}

答案 2 :(得分:0)

您希望使用JavaScript .map()方法将数组中的每个元素转换为小写或大写,然后使用JavaScript数组方法.indexOf()来检查值。您还希望将刚接受的值添加到数组中或刷新数组,这样您就不会多次添加该值:

$('#company').on('keyup',function() {
    var lArr = company_array.map(function(elm) {
        return elm.toLowerCase();
    });
    if( lArr.indexOf( this.value.toLowerCase() ) !== -1) {
        $("#ViewExistingCustomer").attr("href", "customers?seq=");
        alert("This company name already exists on another customer.");
    } else {
        company_array.push( this.value );
        //or do a post to add it and refresh company_array
    }
});

注意即可。不确定keyup是否是用于触发支票的适当事件。可能input可能是一个更好的事件。