2017-08-14 165 views
-1

我正在建立一个表单。我希望在提交表单后保持输入值可见。我遵循一些在线指令来使用showMessage()函数,但是,它不适合我。如何在提交表单后显示输入框的消息?

<form id = "form1" action="." method="POST">{% csrf_token %}  
    <div class=".col1" style="float:left;vertical-align: middle;">    
    {{ form.region }} 
    {{ form.operator }} 
    </div> 
    <div id = "form1_value" class="col-xs-2 style="vertical-align: middle;"> 
    {{ form.value }} 
    </div>  
</form> 
<div> 
    <input type="button" class = "btn" value="Run" onclick="SubmitForm1(), showMessage()"/> 
</div> 
+2

有没有办法真正做到这一点有效的JavaScript *(饼干,本地存储等不是一个真正的好办法)*。如果您希望在表单提交后保留该值,并重新加载页面,您可以使用服务器端代码 – adeneo

+0

来完成此操作。如果您在没有AJAX的情况下提交,页面将重新加载。 – Tobiq

+0

你的后端是什么? Django的? – Miro

回答

0

onclick功能应该阅读SubmitForm1(),这将使一个AJAX请求,这是大大使用jQuery简化:改编自here

$.ajax({ 
    method: "POST", 
    url: ".", // from the action attribute of your <form> 
    data: { 
     key1: value1, 
     key2: value2 
    }, 
    success: function(data, textStatus, jqXHR) { 
     // event handler for when submission is complete 
    } 
} 

代码。

这不会重新加载页面或加载新页面。您可能想在按钮上设置disabled = true作为您的<input type="button"...的属性,以防止重新单击表单提交按钮。

编辑:请注意,在OP注意到Django是该项目的后端之前正在编写此答案,但留在了这里,希望在未来有人提出类似的问题。

0

当然,在我之前输入了更长的回答之后,才意识到只想使用javascript或jquery解决此问题。在这种情况下,你可以在HTML页面创建你的表单(而不是用Django表单,它取决于表单的复杂程度),你可以使用一个简短的脚本函数来显示表单的输入数据。

因此,HTML会是这个样子:

<script language="JavaScript"> 
    function showInput() { 
     document.getElementById('display').innerHTML = 
        document.getElementById("user_input").value; 
    } 
</script> 

<div class=""> 
    <form method:"post"> 
    {% csrf_token %} 
    <label><b>Enter a Message</b></label> 
    <input type="text" name="message" id="user_input"> 
    </form> 

    <input type="submit" onclick="showInput();"><br/> 
    <label>Your input: </label> 
    <p><span id='display'></span></p> 
</div> 

这JavaScript的解决方案被其他用户已经给予here另一个类似的问题。我只是想重复一遍,并提到即使在后端使用Django,也可以使用相同的东西。在Django的views.py中,您还可以使用视图函数处理/保存来自此窗体的提交的对象/数据。

如果你想使用Django创建Forms,那么你也可以通过HTML字段的id来确定你想要在提交后显示的所有字段。 Django为字段创建id,如:“id_message”,具体取决于字段名称。你也可以在它们上使用getElementById,并且可以在它们上面使用上面的函数。

相关问题