【问题标题】:Joining first name and last name in one input as two different values在一个输入中加入名字和姓氏作为两个不同的值
【发布时间】:2015-08-06 10:08:18
【问题描述】:

我正在制作一个搜索功能,它通过 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 没有那么丰富的经验,所以请告诉我我当前的解决方案是否一团糟并且可以做得更好。

【问题讨论】:

    标签: javascript jquery json search


    【解决方案1】:

    在过滤器中翻转你的逻辑。

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

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多