无法理解javascript函数无法正确设置变量的原因

无法理解javascript函数无法正确设置变量的原因,javascript,Javascript,我对Javascript还很陌生,所以在我尝试解决这个问题时请容忍我。我试图在应用程序中维护一个对话框窗口的大小 发生的是,我有一个数组中的web表单列表,看起来像这样 var formOneList = ['Choice', 'Asses']; var j = -1; for (var i = 0, length = formOneList.length; i < length; i++) { if (formOneList[i] === formname)

我对Javascript还很陌生,所以在我尝试解决这个问题时请容忍我。我试图在应用程序中维护一个对话框窗口的大小

发生的是,我有一个数组中的web表单列表,看起来像这样

 var formOneList =
        ['Choice', 'Asses'];
var j = -1;
for (var i = 0, length = formOneList.length; i < length; i++) {
     if (formOneList[i] === formname) {
         j = i;
       }
     }
     if (j > -1) {
        dialogWindow.set_width("500px");
     }
     else
        dialogWindow.set_width("300px");
        dialogWindow.set_height("200px");
这是一个非常简短的版本,实际上有大约50个项目

然后我基本上会根据
formOneList
名称设置对话框窗口的大小,如下所示

 var formOneList =
        ['Choice', 'Asses'];
var j = -1;
for (var i = 0, length = formOneList.length; i < length; i++) {
     if (formOneList[i] === formname) {
         j = i;
       }
     }
     if (j > -1) {
        dialogWindow.set_width("500px");
     }
     else
        dialogWindow.set_width("300px");
        dialogWindow.set_height("200px");
警报显示的数字是数组中ASSES的顺序,大于-1,但它仍然在
对话框窗口中显示。set_width(“500px”)


我做错了什么?

您需要将
if(j>-1)
更改为
if(j<0)
。那么它的行为就正确了。

什么是“formname”以及它在哪里设置?@zsawaf=formname正在加载此表单时单击按钮进行设置。formName设置正确,因为在for循环结束时,j被设置为第2项,因为Asses是数组中的第2项,我在if语句之前检查了,因为alert(j)清楚地显示了j=2。您描述了这种行为:“警报显示的数字是数组中ASSES的顺序,大于-1,但它仍然在对话框窗口中显示。设置_宽度(“500px”);“-但这是正确的。j比-1更敏感,所以对话应该是500px不?@Matus-我是个白痴,他们现在是星期一,我明白了:)…但是你现在应该结束这个问题。