【发布时间】:2018-09-06 11:01:13
【问题描述】:
我试图在表单的最后一页(在点击“提交”按钮之前)显示我所有的 HTML 输入值,但是,我无法在页面上打印出这些值。
这是我迄今为止尝试过的,当我运行它时,值在最后一页上显示为空白。还有比这更好的方法吗?
HTML:
<div class="tab">
<label>Start Point</label>
{{ form.start_point(placeholder="Start point..", oninput="this.className = ''", id="start_point") }}
<label>QC</label>
{{ form.qc(placeholder="QC...", oninput="this.className = ''", id="qc") }}
</div>
<div class="tab">
<label>Input S3 Bucket</label>
{{ form.input_uri(placeholder="(e.g. s3://pipeline-run/fastqs/)...", oninput="this.className = ''", id="input_uri") }}
<label>Output S3 Bucket</label>
{{ form.output_uri(placeholder="(e.g. s3://pipeline-run/results/)...", oninput="this.className = ''", id="output_uri") }}
</div>
JavaScript:
<script>
$(function() {
$('#start_point').change(function(){
$('#start_point_label').text($(this).val());
});
$('#qc').change(function(){
$('#qc_label').text($(this).val());
});
$('#input_uri').change(function(){
$('#input_uri_label').text($(this).val());
});
$('#output_uri').change(function(){
$('#output_uri_label').text($(this).val());
});
});
</script>
更新 1: 对输入标签之间的区域进行“检查”的 HTML 结果。
<input id="input_uri" name="input_uri" oninput="this.className = ''" placeholder="(e.g. s3://pipeline-run/fastqs/)..." required="" type="text" value="" class=""> == $0
更新 2: 我定义用户输入的表单类
from flask_wtf import FlaskForm
from wtforms import StringField, TextField, SubmitField, IntegerField, SelectField, validators
import boto3
s3_client = boto3.client('s3')
ec2_client = boto3.client('ec2')
class InputForm(FlaskForm):
bucket_choices = [("", "---")] + [("", bucket["Name"]) for bucket in s3_client.list_buckets()["Buckets"]]
stack_name = StringField('STACK NAME', validators=[validators.required()])
deploy_bucket = SelectField('PIPELINE DEPLOYMENT BUCKET', validators=[validators.required()], choices=bucket_choices)
input_uri = StringField('INPUT BUCKET', validators=[validators.required()])
output_uri = StringField('OUTPUT BUCKET', validators=[validators.required()])
更新 3: 我有多个具有下拉选项的输入,但是当它们在最终表单页面上打印出来时,这些输入中的每一个都会打印出全部选定的选项。
外观:
Pipeline Deployment Bucket: CFNTemplateClaudia_Sandboxfastq---GRCh38-referencesGRCh38wgs---
Key Pair: CFNTemplateClaudia_Sandboxfastq---GRCh38-referencesGRCh38wgs---
Start Point: CFNTemplateClaudia_Sandboxfastq---GRCh38-referencesGRCh38wgs---
QC: CFNTemplateClaudia_Sandboxfastq---GRCh38-referencesGRCh38wgs---
它应该看起来如何:
Pipeline Deployment Bucket: CFNTemplate
Key Pair: Claudia_Sandbox
Start Point: fastq
QC: ---
【问题讨论】:
-
您使用的是 Angular.js 还是其他框架?即您的 HTML 中的大括号是什么?可能是qcforms.com,如果是这样,您应该相应地标记您的问题。
-
包括jQuery
-
@mb21:不,这实际上是我在另一个问题中得到的回答,作为我的问题的解决方案。我对 JavaScript 之类的东西还不是很熟悉。
-
@claudiadast 右键单击标签之间的区域(即
{{...}}生成输入的位置),单击检查并发布该 HTML。 -
嗯,这当然不是纯 JavaScript ......但 @zer00ne 似乎知道你在说什么,即使没有其他人知道 ;-)
标签: javascript jquery html flask-wtforms