Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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-select标记的奇怪错误或功能_Javascript_Html Select - Fatal编程技术网

Javascript-select标记的奇怪错误或功能

Javascript-select标记的奇怪错误或功能,javascript,html-select,Javascript,Html Select,我有在提交前验证表单输入的代码。在中,有一段代码不太管用: if(elem[i].tagName == 'SELECT'){ alert('1' + elem[i].name); if (elem[i].selectedIndex == 0) { alert('2' + elem[i].name); elem[i].style.backgroundColor = window.errorColor; pass = false;

我有在提交前验证表单输入的代码。在中,有一段代码不太管用:

if(elem[i].tagName == 'SELECT'){
    alert('1' + elem[i].name);

    if (elem[i].selectedIndex == 0) {
        alert('2' + elem[i].name);
        elem[i].style.backgroundColor = window.errorColor;
        pass = false;
    } //SELECT SHOULD NOT BE OPTION 0
}
发生的情况是,将触发第一个警报,而跳过第二个警报,以及背景颜色更改,但pass仍被设置为false。如果我删除第二个警报,背景颜色将改变

在if语句内部,不会触发使用select标记中的信息的警报。if周围的任何其他警报都将显示良好,但当if内出现警报并使用select标记中的数据时,屏幕将闪烁,并显示一个警报弹出,但立即消失


这是在firefox btw中,控制台没有显示错误。同样,无论选择的索引是什么,这种情况都会发生。

这听起来像是人们想要玩的东西。你能帮我们做一份工作吗?另外,由于警报似乎是调试语句,您能否使用
console.log
查看是否有不同的行为?这可能只是
警报
和发生的选择之间的一种奇怪的交互。我打赌这个代码段周围存在一些异步性,这导致代码以您意想不到的顺序发生。@ScottMermelstein我试图创建一个小提琴,但我创建的超级简化verison运行良好:P@Category6是的,现在我用小提琴制作了一个简单的版本,它还有一些古怪的地方。我有一个相当大的初始化页面,加上许多其他代码,一些东西正是导致这个错误的原因。(我也有相当多的jquery附加到相同的leements中)Javascript通常会忽略空白。(这就是缩小的工作原理!)正如你所说,大括号是必不可少的。否则,它只假设if后面的第一条语句是if的一部分。