«document.forms.value» - не определено в Microsoft Edge - PullRequest
0 голосов
/ 21 января 2019

Я написал очень быструю функцию javascript для проверки очень маленькой формы на внутренней форме, используемой в нашем офисе.Однако сегодня кто-то сказал мне, что в Edge это не работает, код никогда не включает кнопку отправки.

Я console.log выводим значения var каждый раз, когда запускается функция, а в edge переменныенавсегда неопределенный.Кажется, что Edge не уважает "document.forms [" abc "] [" xyz "]. Value", но я не могу найти какую-либо документацию или примечания, подтверждающие это.

Я должен уточнить, я неJavascript Pro, я использую его очень экономно, и простыми способами, чтобы выполнить небольшие задачи, как это, поэтому, пожалуйста, не судите мой код слишком сложно, ха-ха.

Журнал консоли:

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();
}

Кто-нибудь знает, почему Эдж играет в игры?Или что я могу заменить для document.forms.value, который будет работать в других браузерах и Edge тоже?Спасибо.

1 Ответ

0 голосов
/ 22 января 2019

Ваш код работает в 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

...