我有三个输入框,但最后两个输入禁用。当用户在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;
答案 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">