間違っている場合は訂正してください。ただし、スクリプトタグの直後に変数を宣言して、そのスクリプト全体で使用できるようにすることはできませんか?私はこれを試しましたが、私の機能はそこにさえないかのように機能しています。私は何か間違ったことをしましたか、それともこれが起こるはずです。それらがまったく同じものである場合、各関数のすべての変数を再宣言する必要はありません。
申し訳ありません
<script>
var na=document.getElementById('nr');
var ea=document.getElementById('er');
var em=document.subscribe.email;
var fn=document.subscribe.fname;
var ln=document.subscribe.lname;
var eml=document.subscribe.email.value.length;
var fnl=document.subscribe.fname.value.length;
var lnl=document.subscribe.lname.value.length;
var at=document.subscribe.email.value.indexOf("@");
var per=document.subscribe.email.value.lastIndexOf(".");
function validate_form() {
if((fnl<1 || lnl<1) && !eml<1){
alert("Please enter your first and last name.")
if(fnl<1){fn.focus()}else{ln.focus()}
}
else if((fnl<1 || lnl<1) && eml<1){
alert("Please fill in all fields.")
if(fnl<1){fn.focus()}else{ln.focus()}
}
else if(eml<1 || at<1 || per-at<2 || eml-per<2){
alert("Please enter a valid email address")
em.focus()
}
else if (at>1 && per-at>2 && eml-per>2 && fnl>1 && lnl>1){return true}
vfn(); vln(); vem();
return false}
varsが関数内にある場合は完全に正常に機能しますが、このような場合は何も起こりません。