HTML 输入工作所需
Required for HTML inputs working
我正在开发一个 Flask 应用程序,我在某些 HTML 输入中有所需的标记,但它们似乎无法正常工作。
该应用程序的基础是基于 select 选项 selection,显示具有不同输入集的不同内容,同时隐藏其他内容。以下是一些代码,虽然我遗漏了很多代码,因为有很多,我觉得这就是所有相关的代码,但我可能是错的。目前一切正常,除了对某些 HTML 输入使用 "required"。可能是什么原因造成的?
HTML
<form id="observations" method="post" action="/Page" onsubmit="SubForm()">
<div class="form-group row">
*Some other inputs up here*
<div class="form-group row" id="facts1" style="display:none;">
<div class="form-group row" >
<label class="col-sm-5 col-lg-5 col-md-5 form-control-label">fact_a* </label>
<div class="col-sm-4 col-lg-4 col-md-4">
<input class="form-control" name="fact_a" type="number" step="any" value= {{ fact_a }} required>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4 col-lg-4 col-md-4 col-xs-4 col-sm-offset-2 col-lg-offset-2 col-md-offset-2 col-xs-offset-2" >
<input type="submit" name="submit" value="Submit" class="btn btn-success btn-lg">
</div>
</div>
</form>
关联的 Javascript 是:
<!-- Shows different fields depending on which Facts type is input-->
$('#myselect').on('change',function(){
if( $(this).val()==="facts1"){
$("#facts1").show()
}
else{
$("#facts1").hide()
}
if( $(this).val()==="facts2"){
$("#facts2").show()
}
else{
$("#facts2").hide()
}
function SubForm(){
var facts1 = document.getElementById('facts1');
var facts2 = document.getElementById('facts2');
if (facts1.style.display == 'none') {
// Get the parent of the facts1 node, then use it to remove its child facts1
facts1.parentNode.removeChild(facts1);
}
if (facts2.style.display == 'none') {
// Get the parent of the facts2 node, then use it to remove its child facts2
facts2.parentNode.removeChild(facts2);
}
}
使用 subForm 函数,以便我的 HTML(未显示)中的另一个 div,facts2,如果未显示,则被删除,因此其输入不会提交给 Flask 和字典
其他相关信息:我在这个页面上有第二个表格,它也有一个类型为"submit"的输入,用于提交上传的csv文件,以便将csv文件的内容填充到我的 HTML 通过 jinga2 输入。
确保您使用的浏览器支持所需的标签。大多数都可以,但我体验过一些带有 Web 视图的 IDE 没有
这一行:
<input class="form-control" name="fact_a" type="number" step="any" value= {{ fact_a }} required>
呈现时,值需要用双引号引起来,因此它可能需要如下所示:
<input class="form-control" name="fact_a" type="number" step="any" value="{{ fact_a }}" required>
我正在开发一个 Flask 应用程序,我在某些 HTML 输入中有所需的标记,但它们似乎无法正常工作。
该应用程序的基础是基于 select 选项 selection,显示具有不同输入集的不同内容,同时隐藏其他内容。以下是一些代码,虽然我遗漏了很多代码,因为有很多,我觉得这就是所有相关的代码,但我可能是错的。目前一切正常,除了对某些 HTML 输入使用 "required"。可能是什么原因造成的?
HTML
<form id="observations" method="post" action="/Page" onsubmit="SubForm()">
<div class="form-group row">
*Some other inputs up here*
<div class="form-group row" id="facts1" style="display:none;">
<div class="form-group row" >
<label class="col-sm-5 col-lg-5 col-md-5 form-control-label">fact_a* </label>
<div class="col-sm-4 col-lg-4 col-md-4">
<input class="form-control" name="fact_a" type="number" step="any" value= {{ fact_a }} required>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4 col-lg-4 col-md-4 col-xs-4 col-sm-offset-2 col-lg-offset-2 col-md-offset-2 col-xs-offset-2" >
<input type="submit" name="submit" value="Submit" class="btn btn-success btn-lg">
</div>
</div>
</form>
关联的 Javascript 是:
<!-- Shows different fields depending on which Facts type is input-->
$('#myselect').on('change',function(){
if( $(this).val()==="facts1"){
$("#facts1").show()
}
else{
$("#facts1").hide()
}
if( $(this).val()==="facts2"){
$("#facts2").show()
}
else{
$("#facts2").hide()
}
function SubForm(){
var facts1 = document.getElementById('facts1');
var facts2 = document.getElementById('facts2');
if (facts1.style.display == 'none') {
// Get the parent of the facts1 node, then use it to remove its child facts1
facts1.parentNode.removeChild(facts1);
}
if (facts2.style.display == 'none') {
// Get the parent of the facts2 node, then use it to remove its child facts2
facts2.parentNode.removeChild(facts2);
}
}
使用 subForm 函数,以便我的 HTML(未显示)中的另一个 div,facts2,如果未显示,则被删除,因此其输入不会提交给 Flask 和字典
其他相关信息:我在这个页面上有第二个表格,它也有一个类型为"submit"的输入,用于提交上传的csv文件,以便将csv文件的内容填充到我的 HTML 通过 jinga2 输入。
确保您使用的浏览器支持所需的标签。大多数都可以,但我体验过一些带有 Web 视图的 IDE 没有
这一行:
<input class="form-control" name="fact_a" type="number" step="any" value= {{ fact_a }} required>
呈现时,值需要用双引号引起来,因此它可能需要如下所示:
<input class="form-control" name="fact_a" type="number" step="any" value="{{ fact_a }}" required>