有一种形式,其中有 5 个按钮类型的输入。提交表单时,您需要获取用户单击了哪个按钮。没有 JavaScript! 您需要接收product_size变量中的数据,该变量位于proof_success(product_id)函数中
超文本标记语言
<form method="post" action="proof/success">
<div class="assorti"><h2>{{ product.product }}</h2></div>
<div class="cardcontainer">
<article class="card">
<img src="{{ url_for('static', filename='img/t-shirts.jpg') }}" alt="Футболка" height="270">
</article>
</div>
<div class="oryr">
<h3>{{ product.product_price }} руб</h3>
<div class="choose_size">
<input name="XS" type="button" value="XS" class="cs_card">
<input name="S" type="button" value="S" class="cs_card">
<input name="M" type="button" value="M" class="cs_card">
<input name="L" type="button" value="L" class="cs_card">
<input name="XL" type="button" value="XL" class="cs_card">
</div>
<ul>
<p>Собственное произодство</p>
<p>Хлопок - 100%</p>
<p>Качественный принт</p>
</ul>
</div>
<div class="box_4_btn">
<button data-v-c3114ba2="" class="app-button basket-price__submit width-100 paypose" type="submit">
Добавить в корзину</button>
</div>
</form>
PYTHON
@app.route('/<int:product_id>/proof/success', methods=["GET", "POST"])
def proof_success(product_id):
product = Cart.query.get_or_404(product_id)
product_price = product.product_price
if request.method == "POST":
pass
return redirect(url_for('tshirts'))
input[type=button]不触发form.submit事件您可以将其替换为以下代码并修复会崩溃的 css。
onclick="form.submit()"或者为每个输入添加一个事件[题外话] 为什么不能用js? [/题外话]
正如@Rijen 已经说过的,普通的
button不会触发submit提交表单本身的事件。要发送不带 的数据submit,您可以使用jQuery.ajax或fetch,但这样form您就不需要标签本身了。为什么?当您制作表单时,您可以为其提供一些具有特殊属性的输入字段,借助这些字段您可以配置将相同表单发送到服务器、关联数据等。此表单中的数据将使用 发送到服务器
button type submit。通过 提交jQuery.ajax或fetch允许您提交任何数据,而无需使用表格本身。其次,我真的不明白为什么你的问题被称为“如何通过按下按钮类型的输入从表单中获取数据”,但是问题本身没有以任何方式描述这一点?为什么不能使用呢
js?而且您的代码中也没有变量product_size。因此,你所设定的任务是不可能完成的