Javascript循环不';t工作(javascript新增)

Javascript循环不';t工作(javascript新增),javascript,Javascript,我刚开始学习javascript循环,我创建了一个简单的第一个循环,但它不起作用,我不知道为什么 现在请尽量保持简单,因为我只是一个初学者,如果可能的话,尝试通过做简单的事情来纠正它,如果不只是告诉我,我会学习更多 如果输入文本的值为空,则代码应发送警报 <form name="myForm" runat="server" onsubmit="return myFunction()"> <div> First name<input type="text" i

我刚开始学习javascript循环,我创建了一个简单的第一个循环,但它不起作用,我不知道为什么

现在请尽量保持简单,因为我只是一个初学者,如果可能的话,尝试通过做简单的事情来纠正它,如果不只是告诉我,我会学习更多

如果输入文本的值为空,则代码应发送警报

    <form name="myForm" runat="server" onsubmit="return myFunction()">
<div>
First name<input type="text" id="firstname" name="fname" />
<input type="submit" value="Submit" />
</div>
</form>
<script>
    function myFunction() {
        var x = document.forms["myForm"]["fname"].value;
        var i = x.length;
        for (var i = x.length; i = 0; i++) {
            alert("asfasfas");
        }
    }


</script>

名字
函数myFunction(){
var x=document.forms[“myForm”][“fname”].value;
var i=x.长度;
对于(变量i=x.length;i=0;i++){
警报(“ASFAS”);
}
}

我做错了什么?

您的循环可以分解为以下说明:

  • i
    设置为
    x.length
  • 如果
    i=0
    为真。。。哦。这是一个赋值,赋值是一个虚假的值。循环到此结束
我怀疑你的意思是:

for( i=0; i<x.length; i++)

for(i=0;i你从
i=x.length
开始,测试i=0
的时间。传统上,你从
0
开始,测试i==x.length的时间。你还使用了
=/code>(赋值)而不是
=
(比较)。你确实希望
for循环有三个主要部分:

for ([1. initiation];[2.condition];[3.step]) {
...
}
  • 初始化:循环开始前执行一次
  • 条件:每次在循环体之前执行,如果为false,则退出循环
  • 步骤:每次循环后执行
  • 在您的示例中,该条件始终返回false,因为i=0返回0,并且在javascript中被视为
    false

    您可能想做的是:

    for (var i=0; i<x.length; i++) {
       alert("Found letter:"+x.charAt(i));
    }
    
    它通过相同的
    i
    值重复相同的次数,但向后

    我建议在此处阅读有关for循环的更多信息:
    好的,有几件事

  • 如果最好使用if语句(如果length=0,则抛出警报),则使用for循环
  • 你没有行动。不确定这是否真的重要,但为了完成,我添加了一个
  • <form name="myForm" action="javascript:void(0);" onsubmit="return myFunction()">
     <div>
      First name<input type="text" id="firstname" name="fname" />
      <input type="submit" value="Submit" />
     </div>
    </form>
    <script>
        function myFunction() {
            var x = document.forms["myForm"]["fname"].value;
            var i = x.length;
            if (i == 0) {
                alert("asfasfas");
            }
        }
    </script>
    
    
    名字
    函数myFunction(){
    var x=document.forms[“myForm”][“fname”].value;
    var i=x.长度;
    如果(i==0){
    警报(“ASFAS”);
    }
    }
    

    能否请您解释一下最后一部分+x.CharAt(i)JavaScript是区分大小写的。函数以小写开头。因此,它是
    x.CharAt(i)
    。因为
    x
    包含用户在输入字段中键入的字符串,
    x.CharAt(索引)
    将在提供的索引处使用一个字符。因此,循环将逐字母显示字符串。如果您觉得有用,请向上投票。此代码不起作用,当我按submit时,警报将不会触发查看有关加载顺序的其他答案。如果您不先加载脚本,则函数可能不在符号表中。此在这个提琴中模拟了:我之所以使用for循环而不是if,是因为当我有一个包含很多变量的长表单时,例如7,我需要为每个可能发生的选项创建一个代码,例如所有7都是空的,比1-6都比2-7,比3-7+1,等等……我在这里写过
    for (var i=x.length-1; i>=0; i--) {
       alert("Found letter:"+x.charAt(i));
    }
    
    <form name="myForm" action="javascript:void(0);" onsubmit="return myFunction()">
     <div>
      First name<input type="text" id="firstname" name="fname" />
      <input type="submit" value="Submit" />
     </div>
    </form>
    <script>
        function myFunction() {
            var x = document.forms["myForm"]["fname"].value;
            var i = x.length;
            if (i == 0) {
                alert("asfasfas");
            }
        }
    </script>