gpt4 book ai didi

javascript - 使用数据列表中的值填充输入字段

转载 作者:行者123 更新时间:2023-12-03 10:07:05 24 4
gpt4 key购买 nike

我正在尝试根据数据列表选择填充输入字段。因此,如果用户选择名称 jimmy.johns,输入字段应填充 5555555555。这是我的代码。

<html>
<head>
<title>Countdown</title>
<input name="customer" list="customer" />
<datalist id="customer">
</datalist>

<br>
<br>

<input id = "phone" name ="phone" type = "text" placeholder = "Phone Number" value = ""/>

<script type="text/javascript">
var customer = ['david.a.onezine', 'jimmy.a.jams', 'larry.a.beatrice', 'janet.a.jackson', 'biggie.j.smalls', 'bob.marley', 'james.a.tribeca', 'veronica.a.mars', 'kassy.b.jones', 'victoria.a.langley'];
var phone = ['54658798798', '4578912356', '425367894125', '4578913246', '7894561234', '452139856427', '47895641234', '78423651405', '789456123025', '784596123459'];
var arraylength = customer.length;
var i;
var options = '';

for(i = 0; i < arraylength; i++)
options += '<option value="'+customer[i]+'" />';

document.getElementById('customer').innerHTML = options;
</script>

</body>
</html>

我认为人们需要做的就是做类似的事情

if (options == 'david.a.onezine'){
document.getElementById('phone').innerHTML = phone[0];
}

但是这不起作用。我已经读到我可能需要在数据列表上使用事件监听器,但我没有使用很多 eventlisteners 所以我需要将 onChange 附加到'客户输入还是“客户”数据列表?

我被困住了,脑子里只有理论部分。我明白它应该如何运作。我只是不知道如何将其放入代码中。

因此,如果选择 customer[1],则应在电话输入字段中填充 phone[0]。我只是不确定如何用 JavaScript 编写它。我宁愿编写 JavaScript 而不是 jQuery。

最佳答案

实现所需效果的最简单方法是使用 onchange 事件。

<html>
<head>
<title>Countdown</title>
<select name="customer" id="customer" onchange="getNumber()">
</select>

<br>
<br>

<input id = "phone" name ="phone" type = "text" placeholder = "Phone Number" value = ""/>

<script type="text/javascript">
var customer = ['david.a.onezine', 'jimmy.a.jams', 'larry.a.beatrice', 'janet.a.jackson', 'biggie.j.smalls', 'bob.marley', 'james.a.tribeca', 'veronica.a.mars', 'kassy.b.jones', 'victoria.a.langley'];
var phone = ['54658798798', '4578912356', '425367894125', '4578913246', '7894561234', '452139856427', '47895641234', '78423651405', '789456123025', '784596123459'];
var arraylength = customer.length;
var i;
var options = '';

options += '<option value="defualt">Choose a Name</option>';
for(i = 0; i < arraylength; i++)
options += '<option value="'+customer[i]+'">'+customer[i]+'</option>';

document.getElementById('customer').innerHTML = options.toString();
document.getElementById('customer').selectedIndex = 0;
getNumber();

function getNumber(){
var index = document.getElementById('customer').selectedIndex;

if(index == 0){
document.getElementById('phone').value = "";
} else {
document.getElementById('phone').value = phone[index-1];
}
}
</script>

</body>
</html>

<select name="customer" id="customer" onchange="getNumber()">
</select>

<input id = "phone" name ="phone" type = "text" placeholder = "Phone Number" value = ""/>

首先要设置两个输入框。请注意,第一个输入现在有一个 onchange 事件,每当输入(任何类型)更改时都会调用该事件。名称输入现在是一个元素的原因是因为它允许我们利用 selectedIndex 变量,但它在语义上更清晰,并且仅在选择完整值之一时才会注册“更改”。

options += '<option value="defualt">Choose a Name</option>';

这是页面加载时看到的默认选项。它可以防止以下问题:如果用户实际上想要选择第一个选项“david.a.onezine”,但它不会被注册为实际更改。

function getNumber(){
var index = document.getElementById('customer').selectedIndex;

if(index == 0){
document.getElementById('phone').value = "";
} else {
document.getElementById('phone').value = phone[index-1];
}
}

这是在选择列表更改时调用的函数。首先,通过内部变量 selectedIndex 检索所选项目。如果索引等于 0,则表示选择了“默认”值,并且电话输入设置为空字符串,否则将设置为 phone[index-1],即电话号码属于所选的任何名称。

编辑:

这是 getNumber() 的修改版本,它将与您的代码一起使用。

function getNumber(){
var customervalue = document.getElementById('customerI').value;

var i;
var match = false;

for(i = 0; i < arraylength; i++){
if(customervalue == customer[i]){
match = true;
break;
}
}

if(match == true){
document.getElementById('phone').value = phone[i];
} else {
document.getElementById('phone').value = "";
}
}

请注意,数据列表更多的是用于自动完成,因此实际上没有索引或任何内容,而是供输入标记使用。此外,输入必须有一个 ID 才能使 getNumber() 工作;

关于javascript - 使用数据列表中的值填充输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com