首页 > 解决方案 > js中的函数复制值不起作用“未定义”值

问题描述

我需要在另一个输入字段中复制 id 为“test-id”的输入值。当我使用这个:

// start copy  implementation   
function copyTextValue() {

if(document.getElementById('accetta-condizioni').checked){
        let text1 = document.getElementById('billing_phone').value;        
        document.getElementById('reg_username').value = text1;
        document.getElementById('reg_password').value = text1;
    }
    else{
        document.getElementById('reg_username').value = "";
        document.getElementById('reg_password').value = "";
    }    
 }

在这个 html

<input type="tel" class="input-text" name="billing_phone" id="test-id" value="" placeholder="Number...">
<input type="checkbox" id="acpt-id" name="accetta-condizioni" onclick="copyTextValue();">

<input type="text" id="reg_username" autocomplete="username" value="">
<input type="password" id="reg_password" autocomplete="new-password">

导致字段值“未定义”。为什么?

标签: javascriptinputcopyfieldgetelementbyid

解决方案


我解决了我的问题,代码是:

function copyTextValue() {

if(document.getElementById('accetta-condizioni').checked){
    
    var inputs = document.getElementsByTagName('input');

for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type.toLowerCase() == 'tel') {
       // alert(inputs[i].value);
         document.getElementById('reg_username').value = inputs[i].value;
        document.getElementById('reg_password').value = inputs[i].value;
            
    }
}
       
    }
    else{
        document.getElementById('reg_username').value = "";
        document.getElementById('reg_password').value = "";
    }    
 }
   

推荐阅读