Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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 什么';我的循环有什么问题吗_Javascript_Arrays_While Loop - Fatal编程技术网

Javascript 什么';我的循环有什么问题吗

Javascript 什么';我的循环有什么问题吗,javascript,arrays,while-loop,Javascript,Arrays,While Loop,我是JavaScript新手,我的代码中有一些错误,我找不到!它快把我逼疯了 好的,这就是我想做的,用户选择多少诗人一起写一首诗。如果数字是1或没有输入数字,结果是相同的,即用户输入诗人的姓氏和首字母,函数将其按所需顺序排列,但当它是多个诗人(在本例中为2)时,我希望它询问下一个诗人的姓氏和首字母,因此我使用数组,但由于某些原因,结果仅仅基于第一位诗人的细节,如:Lname(0),Iname(0)和, 它不要求第二个诗人的名字和首字母! 请让我知道我做错了什么 var Initial, Las

我是JavaScript新手,我的代码中有一些错误,我找不到!它快把我逼疯了

好的,这就是我想做的,用户选择多少诗人一起写一首诗。如果数字是1或没有输入数字,结果是相同的,即用户输入诗人的姓氏和首字母,函数将其按所需顺序排列,但当它是多个诗人(在本例中为2)时,我希望它询问下一个诗人的姓氏和首字母,因此我使用数组,但由于某些原因,结果仅仅基于第一位诗人的细节,如:Lname(0),Iname(0)和,
它不要求第二个诗人的名字和首字母! 请让我知道我做错了什么

 var Initial, LastName, authors;
    var num=1;
    var Iname = [],Lname = [];
    var index = 0;

    num=bookForm.txtNumber.value;
    num=Number(num);
    if (num > 1) { 

        if (num == 2) {
            while (index <= 1){
                Iname[index] = bookForm.txtInitial.value;
                Lname[index] = bookForm.txtLastName.value;
                bookForm.txtInitial.value="";
                bookForm.txtLastName.value="";
                bookForm.txtInitial.focus();
                index = index + 1;
            }
            authors = Lname[0]+", "+Iname[0]+" & "+Lname[1]+", "+Iname[1]+" "
        }
    }
    else {
    Initial = bookForm.txtInitial.value+" "
    LastName = bookForm.txtLastName.value+", ";
    authors = LastName+Initial;
    }
var首字母、姓氏、作者;
var-num=1;
变量Iname=[],Lname=[];
var指数=0;
num=bookForm.txtNumber.value;
num=数字(num);
如果(num>1){
如果(num==2){

当(index看起来时,使用

bookForm.txtInitial.value=“”;
bookForm.txtLastName.value=“”;


当您在循环中第二次传递时,该值为空。

关注该元素不会使脚本等待用户输入新值。脚本不能停止并等待用户填写表单字段。您必须从函数返回,并在用户填写表单时使用事件侦听器执行某些操作。@Barmar谢谢你刚刚为我打开了一扇通往全新篇章的大门…与其重复使用同一个输入字段,不如制作一个输入表,这样用户可以一次输入所有输入。是的,这是个更好的主意。谢谢,这在技术上是正确的,但与实际问题无关。好吧,我想我知道你想要这样的东西“等待我在继续循环之前输入值”。就是这样吗?因为方法“focus()不能这样做“只将焦点放在组件上,但不要等待return@ChristofHullaert是的,就像等待用户输入下一个值一样,也许你可以在开始时单击“添加诗人”按钮,而不是选择诗人的数量,每次按下该按钮时,你都会在数组的末尾添加诗人。宾果,太好了。再次感谢