提交时动态隐藏表单?

Ale*_*sky 2 html dhtml

我不是一个大网络程序员,有一个朋友想让我帮他做点什么。

他希望能够有一个表单,一旦提交就会更改为“感谢提交”之类的内容,并使表单信息消失。他希望任何人都可以轻松使用它,这样他就可以将其提供给不同的人在他们的网站上使用。

我在想我可以使用 javascript 来做到这一点,但并不是 100% 确定。我想尽可能避免任何非 HTML 的内容,以便尽可能多的人使用它。

谢谢。

dan*_*sky 6

表单中的信息会发生什么?没关系吗?

如果您希望它是HTML,那么只有一种很好的解决方案:使用表单编写一个 HTML 页面,以及另一个几乎相同的页面,其中包含成功消息并隐藏表单数据。简单的。

在提交方面:

<h1>Email Subscription:</h1>
<form action="successForm.html">
<input type="text" name="emailAddress" />
<button type="submit">Send Info</button>
</form>
Run Code Online (Sandbox Code Playgroud)

在接收方 (successForm.html)

<h1>Email Subscription:</h1>
<p>Great job, you submitted!</p>
Run Code Online (Sandbox Code Playgroud)

但是,如果您需要在同一页面上更改某些内容,您将不得不使用非 HTML 的内容。HTML 只是不会对显示的内容做出任何决定。这是愚蠢的......它只是显示。

使用 JavaScript 检测表单何时提交非常简单,然后隐藏需要隐藏的元素,并显示成功信息

<!-- Goes in the <head> or in a seperate script -->
<script type="text/javascript">
    var theSubmitButton = document.getElementById('formSubmit');

    theSubmitButton.onclick = function() {
        var theFormItself = 
            document.getElementById('theForm');
        theFormItself.style.display = 'none';
        var theSuccessMessage = 
            document.getElementById('successMessage');  
        theSuccessMessage.style.display = 'block';          
    }
</script>

<!-- Goes in the body -->
<h1>Email Subscription:</h1>
<p id="successMessage">You submitted the form, good job!</p>
<form id="theForm" action="successForm.html">
    <input type="text" name="emailAddress" />
    <button id="formSubmit" type="submit">Send Info</button>
</form>
Run Code Online (Sandbox Code Playgroud)

当然,这个例子过于简单了。它不对数据做任何事情,也不遵循最佳实践,也不以任何方式检查数据是否有效。我只是想就如何为此目的使用 JavaScript 给出一个基本的想法。如果您不是程序员,那么想出一个小的、可分发的软件对其他人来说可能是一份好工作。

但是,您仍然需要某种机制来存储、发送电子邮件或以其他方式处理表单。对您的问题进行编辑,我很乐意用一个具体的例子来澄清我的答案。

(另外请注意,我没有尝试运行该 Javascript,所以如果您看到错误,请注意,我会修复它)