[英]compare two fields in Flask Jinja2
但是,我正在嘗試比較使用 Jinja 生成的兩個字段,而無需按下提交按鈕。
我使用了包含的驗證器、標准 if 案例等。它們都沒有按預期工作,所以我嘗試了 Javascript。
一般來說,我想:
為此,我需要重新加載服務器端 HTML。
這是一個示例代碼:
<div id="home" class="text-center">
Hello, {{ username }}
</div>
<body>
<input type="text" id="domain" size="30">
<input type="text" id="server" size="30">
{% if not compareArecords %}
<button type="button" class="btn btn-danger">Danger</button><br>
{%endif %}
</body>
<script>
document.getElementById("domain").addEventListener("keyup", compareArecords);
document.getElementById("server").addEventListener("keyup", compareArecords);
function compareArecords() {
var text1 = document.getElementById("domain");
var text2 = document.getElementById("server");
if (text1.value === text2.value)
return true;
else
return false;
}
</script>
為了不必重新加載 html,通常會使用 css 隱藏元素,直到您需要顯示它。 在你的例子中會是這樣的
<body>
<input type="text" id="domain" size="30">
<input type="text" id="server" size="30">
<button type="button" class="btn btn-danger hidden" id="btn-danger">Danger</button><br>
</body>
<script>
document.getElementById("domain").addEventListener("keyup", compareArecords);
document.getElementById("server").addEventListener("keyup", compareArecords);
function compareArecords() {
var text1 = document.getElementById("domain");
var text2 = document.getElementById("server");
if (text1.value === text2.value)
// Nothing to do here!
else {
var danger_btn = document.getElementById("btn-danger");
danger_btn.classList.toggle("hidden");
}
}
</script>
Css:
.hidden { display: none; }
應該注意的是,您也可以完全使用 javascript 生成危險按鈕,如果您想這樣做,這也不是太復雜,但它有一些缺點,例如關注點分離。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.