Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用forEach函数聚焦在第一个字段_Javascript - Fatal编程技术网

Javascript 使用forEach函数聚焦在第一个字段

Javascript 使用forEach函数聚焦在第一个字段,javascript,Javascript,我尝试使用field.first().focus()但我在控制台中收到此消息: 未捕获的TypeError:对象#HTMLInputElement没有方法“first” 我想我错过了一步,但我现在不知道 <script> function richiesti() { //open function richiesti var dati=0; var cognome=document.clienti.cognome; var nome=document

我尝试使用
field.first().focus()但我在控制台中收到此消息:

未捕获的TypeError:对象#HTMLInputElement没有方法“first”

我想我错过了一步,但我现在不知道

<script>
    function richiesti() { //open function richiesti

    var dati=0;
    var cognome=document.clienti.cognome;
    var nome=document.clienti.nome;
    var codfisc=document.clienti.codfisc;

    [cognome, nome, codfisc].forEach(function (field) { // open function field
       if (field.value){ // open if value
            dati++;
            } // close if value
       else { // open else value
            field.className = "bg_orange text-sx c_white b";
            field.value = "richiesto" ;
            field.focus(); // i need the focus at first field 
       } // close else value
    }); // close function field

    if ( dati == 3 ){  // open if dati

        var pattern = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
        var codiceFiscale = document.getElementById("codfisc");

        if (codiceFiscale.value.search(pattern) == -1) { // open if codiceFiscale
            alert("Il valore inserito non è un codice fiscale!");
            codiceFiscale.value = "";
            codiceFiscale.focus();
        } // close if codiceFiscale
        else { // open else codiceFiscale 
            document.clienti.submit() ;
        } // close else codiceFiscale
    } // close if dati 

    else { // open else dati
        alert('Cognome, Nome e Codice fiscale sono campi obbligatori.');


    } // close else dati    
} // close function richiesti 
</script>

函数richiesti(){//打开函数richiesti
var-dati=0;
var cognome=document.clienti.cognome;
var nome=document.clienti.nome;
var codfisc=document.clienti.codfisc;
[cognome,nome,codfisc].forEach(函数(字段){//开放函数字段
if(field.value){//打开if值
dati++;
}//关闭if值
else{//打开else值
field.className=“bg_橙色文本sx c_白色b”;
field.value=“richiesto”;
field.focus();//我需要第一个字段的焦点
}//关闭其他值
});//关闭函数字段
如果(dati==3){//如果dati打开
var模式=/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
var codiceFiscale=document.getElementById(“codfisc”);
如果(codiceFiscale.value.search(pattern)=-1){//如果codiceFiscale打开
警觉(“我是瓦洛尔·因塞里托·诺恩·科迪斯·菲斯卡尔!”);
codiceFiscale.value=“”;
codiceFiscale.focus();
}//如果codiceFiscale关闭
else{//打开else codiceFiscale
document.clienti.submit();
}//关闭else codiceFiscale
}//如果是dati,则关闭
else{//打开else dati
警报(“Cognome,Nome e Codice fiscale sono campi obbligatori.”);
}//关闭其他数据
}//关闭函数richiesti
这是带有输入字段的表单:

<HTML>
<table class="half" >
   <tr>
   <td class="tdocra c_white  b">Cognome :</td>
   <td><input name="cognome" id="cognome" type="text" class="text-sx" value="" ></td>
   <td class="tdocra c_white  b">Nome :</td>
   <td><input name="nome" id="nome" type="text" class="text-sx" value=""></td>
   <td class="tdocra c_white  b">Codice Fiscale :</td>
   <td><input name="codfisc" id="codfisc" type="text" class="text-sx" value="" onChange="richiesti();"></td>
   </tr>
</table>
</HTML>

Cognome:
诺姆:
Codice Fiscale:
审查代码

我添加了一个变量和一部分代码,就像一个建议。 它工作正常,现在只更改第一个字段void的类和值

<script>
function richiesti() { //open function richiesti

    var dati=0;
    var cognome=document.clienti.cognome;
    var nome=document.clienti.nome;
    var codfisc=document.clienti.codfisc;

    var first = true; // add variable

    [cognome, nome, codfisc].forEach(function (field) { // open function field
       if (field.value){ // open if value
            dati++;
            } // close if value
       else { // open else value
             if (first) { // set focus to first only
               field.className = "bg_orange text-sx c_white b";
               field.value = "richiesto" ;
               field.focus();
               first = false; // after the first one has focus
             }
       } // close else value
    }); // close function field

    if ( dati == 3 ){  // open if dati

        var pattern = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
        var codiceFiscale = document.getElementById("codfisc");

        if (codiceFiscale.value.search(pattern) == -1) { // open if codiceFiscale
            alert("Il valore inserito non è un codice fiscale!");
            codiceFiscale.value = "";
            codiceFiscale.focus();
        } // close if codiceFiscale
        else { // open else codiceFiscale 
            document.clienti.submit() ;
        } // close else codiceFiscale
    } // close if dati 

    else { // open else dati
        alert('Cognome, Nome e Codice fiscale sono campi obbligatori.');


    } // close else dati    
} // close function richiesti
</script> 

函数richiesti(){//打开函数richiesti
var-dati=0;
var cognome=document.clienti.cognome;
var nome=document.clienti.nome;
var codfisc=document.clienti.codfisc;
var first=true;//添加变量
[cognome,nome,codfisc].forEach(函数(字段){//开放函数字段
if(field.value){//打开if值
dati++;
}//关闭if值
else{//打开else值
if(first){//仅将焦点设置为first
field.className=“bg_橙色文本sx c_白色b”;
field.value=“richiesto”;
field.focus();
first=false;//在第一个具有焦点之后
}
}//关闭其他值
});//关闭函数字段
如果(dati==3){//如果dati打开
var模式=/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
var codiceFiscale=document.getElementById(“codfisc”);
如果(codiceFiscale.value.search(pattern)=-1){//如果codiceFiscale打开
警觉(“我是瓦洛尔·因塞里托·诺恩·科迪斯·菲斯卡尔!”);
codiceFiscale.value=“”;
codiceFiscale.focus();
}//如果codiceFiscale关闭
else{//打开else codiceFiscale
document.clienti.submit();
}//关闭else codiceFiscale
}//如果是dati,则关闭
else{//打开else dati
警报(“Cognome,Nome e Codice fiscale sono campi obbligatori.”);
}//关闭其他数据
}//关闭函数richiesti

添加一个变量,以便只在与循环中的else条件匹配的第一次迭代中应用焦点

var dati=0;
var cognome=document.clienti.cognome;
var nome=document.clienti.nome;
var codfisc=document.clienti.codfisc;

var first = true; // add variable

[cognome, nome, codfisc].forEach(function (field) {
   if (field.value){ // open if value
        dati++;
   } else {
        field.className = "bg_orange text-sx c_white b";
        field.value = "richiesto" ;

        if (first) { // set focus to first only
            field.focus();
            first = false; // after the first one has focus
        }
   }
});

您能提供一个演示您的问题的链接吗?@Xotic750这是演示的链接,输入值为意大利语/英语翻译。