与用户输入匹配时,我无法设置输入值?

时间:2018-05-28 03:10:10

标签: javascript jquery html

我有三个输入框,但最后两个输入禁用。当用户在first input中输入时,我与json数据com匹配,如果存在匹配,则最后两个输入将自动从匹配的json中设置值。

目前,我的代码不适用于所有名称输入!

  

输入 - >酸 - >不工作

     

输入 - > gosd - >工作



var com = [
{id:1,name:"Acid",phone:4455,address:'Main'},
{id:2,name:"Gosd",phone:555,address:'Lab'}
];


$('[name="com-name"]').on("keyup",function () {
  com.filter(v => {
    if(v.name.toLowerCase() == $(this).val().toLowerCase() ) {
        $('[name="com-pho"]').val(v.phone);
        $('[name="com-add"]').val(v.address);
        return false;
    }
    $('[name="com-pho"]').val('');
    $('[name="com-add"]').val('');
  })
});

input:not(:nth-of-type(1)) {
pointer-events:none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="com-name"><br>
<input type="text" name="com-pho"><br>
<input type="text" name="com-add">
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

您应该删除从文本框中清空值的代码并将其移至开头

var com = [
{id:1,name:"Acid",phone:4455,address:'Main'},
{id:2,name:"Gosd",phone:555,address:'Lab'}
];


$('[name="com-name"]').on("keyup",function () {
   $('[name="com-pho"]').val('');
   $('[name="com-add"]').val('');
  com.filter(v => {
    if(v.name.toLowerCase() == $(this).val().toLowerCase() ) {
        $('[name="com-pho"]').val(v.phone);
        $('[name="com-add"]').val(v.address);
        return false;
    }
    
  })
});
input:not(:nth-of-type(1)) {
pointer-events:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="com-name"><br>
<input type="text" name="com-pho"><br>
<input type="text" name="com-add">