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这是演示的链接,输入值为意大利语/英语翻译。