2

この JavaScript をページに配置するたびに、IE7 または IE8 でこのエラーが発生し、何が問題なのかわかりません。最初はページの head 領域にありましたが、後で body タグの後に移動して追加しましたdefer=defer グーグルで調べた後。

JavaScript を削除すると、すべて正常に動作します。

<form name="myform" method ="POST" onsubmit="return validateForm();">
<table border="0" width="600px">
  <tr>
    <td>Name:</td>
    <td><input name="name" type="text" id="name"/></td>
    <td>Company:</td>
    <td><input name="company" type="text" id="company"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Email Address:</td>
    <td><input name="email" type="text" id="email"/></td>
    <td></td>
    <td></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input type="radio" value="I Agree" name="myradiobutton" />
    I Agree</td>
    <td>&nbsp;</td>
    <td><input type="radio" value="I Disagree"  name="myradiobutton" />
I Disagree</td>
    <td>&nbsp;</td>
    <td><input type="submit" name="submitit"" value="Submit" /></td>
  </tr>
</table>
</form>
</div>
  </body>
  <script defer="defer" type="text/javascript">
function validateForm()
{
var x=document.forms["myform"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }
}
</script>
4

1 に答える 1

3

この問題は、js で対応する src 属性を指定せずに defer 属性を使用することに関連している可能性があると思います。

validateForm() を validate.js などと呼ばれるスクリプトに入れてみてください。

<script defer="defer" src="validate.js" type="text/javascript"></script>

この投稿には、IE/defer に関する詳細情報と追加のリンクがあります。

于 2012-07-17T14:01:57.870 に答える