0

显然这不是最终形式,而是我为调试该形式而创建的一个片段。它仍然具有与最终形式相同的错误。我已经为此工作了几个小时。

我的客户端 localhost 上没有任何其他 html 表单中的其他 javascript 执行此操作。这是在 MAC 上的 MAMP 环境中。

它就在这里,我无法修复它来拯救我的**。在这一点上最受欢迎的建议。它必须是一些简单的东西。我已经尝试了所有困难的东西,但对结果没有影响。

html文件内容

<!DOCTYPE html>
  <head>
    <meta charset="utf-8" />
    <title>NCSA Contact Form</title>
  </head>

  <body>
    <form action="test.js" name="frmNcsa" id="frmNcsa" method="post">
       <input type="submit" name="submitData" id="submitData" value="Submit"/>

    </form>

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

  </body>
</html>

test.js 文件内容

    var $ = function(id){
      document.getElementById(id)
    }

    function prepareEventHandlers() {
      alert("This is test.js")
    }

    window.onload =  function () {
      prepareEventHandlers();
    }

火狐错误信息

未声明纯文本文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。文件的字符编码需要在传输协议中声明或文件需要使用字节顺序标记作为编码签名。

页面重新加载后

单击表单提交按钮后,我在浏览器中看到的页面重新加载,提交按钮消失了。JS文件作为文本读入浏览器

var $ = function(id){
    document.getElementById(id)
}

function prepareEventHandlers() {
    alert("This is test.js")
}

window.onload =  function () {
    prepareEventHandlers();  
}

点击提交应该做什么?

显示“这是一个测试”的警报对话框。

4

1 回答 1

3

通过action="test.js"在您的表单中,您告诉浏览器该表单应该提交(发布)到服务器上的 test.js ,这没有多大意义。在不了解您实际要实现的目标的更多信息的情况下,我只能假设您希望表单纯粹在客户端使用 javascript 处理?在这种情况下,您根本不需要表格。您只需要一个带有操作的提交按钮,该操作在单击时调用您的处理程序函数。

于 2012-09-04T18:30:46.093 回答