“ document.forms.value”-在Microsoft Edge中未定义

时间:2019-01-21 14:05:40

标签: javascript forms validation variables microsoft-edge

我写了一个非常快速的javascript函数,以验证我们办公室使用的内部表单中的一个很小的表单。但是,今天有人告诉我,它在Edge中不起作用,该代码永远不会启用“提交”按钮。

我console.log每次函数运行时注销var值,并且在边缘,var永远是不确定的。似乎Edge不尊重“ document.forms [” abc“] [” xyz“]。value”,但我找不到任何文档或说明来支持它。

我应该澄清一下,我不是javascript专业人士,我非常谨慎地使用它,并以简单的方式完成诸如此类的小任务,所以请不要对我的代码进行太难的判断,哈哈。

控制台日志:

q1=undefined
q2=undefined
q3=undefined
q4=undefined

我的代码在下面,非常简单,没什么花哨的。.

function fieldcheck(){
    var q1=document.forms["datacollect1"]["q1overall"].value;
    var q2=document.forms["datacollect1"]["q2understand"].value;
    var q3=document.forms["datacollect1"]["q3time"].value;
    var q4=document.forms["datacollect1"]["q4recommend"].value;
    console.log("q1="+q1+"\n"+"q2="+q2+"\n"+"q3="+q3+"\n"+"q4="+q4);
    document.getElementById("datacollectsubmit1").disabled = true;
    if (q1 && q2 && q3 && q4){
        console.log("q1234 set");
        document.getElementById("datacollectsubmit1").disabled = false;
    }
}

每次点击我都会通过以下方式调用上面的内容:

document.onclick = function(){
    fieldcheck();
}

任何人都知道为何Edge玩游戏吗?还是我可以替代document.forms.value的东西在其他浏览器和Edge中也可以使用?谢谢。

1 个答案:

答案 0 :(得分:0)

您的上述代码在MS Edge中运行。可能是其他一些代码导致了此问题。我建议您采用以下代码,然后在MS Edge中运行它。

代码:

<!doctype html>
<head>
<script>
function fieldcheck(){
    var q1=document.forms["datacollect1"]["q1overall"].value;
    var q2=document.forms["datacollect1"]["q2understand"].value;
    var q3=document.forms["datacollect1"]["q3time"].value;
    var q4=document.forms["datacollect1"]["q4recommend"].value;
    console.log("q1="+q1+"\n"+"q2="+q2+"\n"+"q3="+q3+"\n"+"q4="+q4);
    document.getElementById("datacollectsubmit1").disabled = true;
    if (q1 && q2 && q3 && q4){
        console.log("q1234 set");
        document.getElementById("datacollectsubmit1").disabled = false;
    }
}
document.onclick = function(){
    fieldcheck();
}
</script>
</head>
<body>
<form name="datacollect1"  onsubmit="return  fieldcheck()" method="post">
  Name: <input type="text" name="q1overall"><br>
Name1: <input type="text" name="q2understand"><br>
Name2: <input type="text" name="q3time"><br>
Name3: <input type="text" name="q4recommend"><br><br>
  <input type="submit" id="datacollectsubmit1" value="Submit">
</form>

</body>
</html>

在MS Edge浏览器中输出:

enter image description here