2017-08-14 155 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,並且可以在它們上面使用上面的函數。

相關問題