HTTP错误405.0 - 不允许的方法 - 表单标记

时间:2016-11-02 21:56:02

标签: javascript html asp.net visual-studio-2015 iis-10

我有一个ASP.NET Web窗体(与MVC相同的问题)项目,我试图用它来托管我添加的HTML表单的简单JavaScript练习。

关于这个主题的类似问题并没有让我找到解决方案。我猜我必须在IIS中为HTML页面添加一个特殊的处理程序吗?

<!DOCTYPE html>
<html>
<head>
    <title>To-Do List</title>
    <meta charset="utf-8" />
</head>
<body>
    <br />
    <form method="post" action="/test/tasks.html" id="theForm">
        <fieldset>
            <legend>
                Enter an item to be done.
            </legend>
            <div>
                <label for="task">Task</label>
            </div>
            <div>
                <input type="text" name="task" id="task" required="required" />
            </div>
            <input type="submit" value="Add it!" id="submit">
            <div id="output"></div>
        </fieldset>
    </form>
    <script src="Scripts/tasks.js"></script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

处理无处提交的表单(如你的)的标准方法就是没有提交按钮(这几乎只是一个调用form.submit()的按钮)。需要注意的事项:

  • 设置&#34;类型&#34;您的按钮元素到&#34;按钮&#34; (默认为&#34;提交&#34;)。
  • 不要使用onclick="foo()"。为了保持表单和函数之间的分离,请通过addEventListener(或等效的)
  • 添加单击处理程序
  • 尝试修改DOM,直到加载完所有内容后,它才会存在。
  • 使用javascript DOM方法创建DOM元素反直觉效率低下,如果可以,只需添加额外的HTML。

这样的事情:

<!DOCTYPE html>
<html>
<head><title>Foo</title></head>
<script type="text/javascript">
"use strict";

var javascript_DOM_methods_are_efficient = false;

function displayResult() {
    var results = document.getElementById('results');
    if (javascript_DOM_methods_are_efficient) {
        results.append(document.createTextNode("extraordinary"));
        results.append(document.createElement('br'));
    } else {
        results.innerHTML += "extraordinary<br />";
    }
}

function init() {
    document.getElementById("eric").addEventListener( "click", displayResult, false );
}

document.addEventListener( "DOMContentLoaded", init, false );
</script>
<body>
    <form name="form">
        <button type="button" id="eric">half a button</button>
    </form>
    <div id="results">
    </div>
</body>