将一个输入中的名字和姓氏连接为两个不同的值

时间:2015-08-06 10:08:19

标签: javascript jquery json search

我正在制作搜索功能,搜索JSON对象并找到您要查找的人并显示有关它们的一些信息,但是现在只有搜索到该人的名字或者姓氏分开。即使我在同一文本字段中输入名字和姓氏,我希望搜索能够找到该人。

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#getValue").click(function(){
                var typed = $("#typedText").val();

                $(function(){
                    $.getJSON('json.json', function(data) {
                        var search = $(data.GetContactsResult).filter(function (i, n) {
                            if (n.FirstName === typed || n.LastName === typed) {
                                return n.LastName 
                            }
                        });
                        console.log(search);

                        for (var i = 0; i < search.length; i++) {
                            alert(search[i].FirstName + " " + search[i].LastName + " " + search[i].MobileNumber + " " + " " +search[i].StateCaption)
                        }
                    });
                });
            });
        });
    </script>
    <meta charset="utf-8">
    <title>click function</title>
</head>
<body>
    <input type="text" id="typedText">
    <input type="button" id="getValue" value="Type value">
</body>
</html>

我不熟悉JavaScript或jQuery,所以请告诉我目前的解决方案是否一团糟,可以做得更好。

1 个答案:

答案 0 :(得分:0)

在过滤器内转动你的逻辑。

var search = $(data.GetContactsResult).filter(function (i, n) {
    if (typed.indexOf(n.FirstName) !== -1 || typed.indexOf(n.LastName) !== -1) {
        return n.LastName; 
    }
});