我有一个包含一堆字段的表单。这些是产品结帐的所有字段。因此,姓名,姓氏,电子邮件,地址,电话等等。然后进行按钮类型提交,进入下一页。
我想做的是,如果这些字段中的任何一个为空,则应该有一个红色文本:“字段为空”,否则它将继续。
这是我尝试执行的操作:
<form class="row contact_form" action="{% url 'create-order' %}" method="POST" novalidate="novalidate">
{% csrf_token %}
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-namn" placeholder="Namn">
</div>
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-efternamn" placeholder="Efternamn">
</div>
<div class="col-md-12 form-group">
<input type="text" class="form-control" name="order-epost" placeholder="E-post för orderbekräftelse">
</div>
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-adress" placeholder="Adress">
</div>
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-ort" placeholder="Ort">
</div>
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-postnummer" placeholder="Postnummer">
</div>
<div class="col-md-6 form-group">
<input type="text" class="form-control" name="order-telefon" placeholder="Telefon">
</div>
<div class="col-md-2 form-group">
<select class="browser-default" name="order-land">
<option value="Sverige" selected>Sverige</option>
</select>
</div>
<div class="col-md-2 form-group p_star">
<select class="browser-default" name="order-state">
<option selected>Län</option>
<option value="Blekinge län">Blekinge län</option>
<option value="Dalarnas län">Dalarnas län</option>
<option value="Gotlands län">Gotlands län</option>
<option value="Gävleborgs län">Gävleborgs län</option>
<option value="Hallands län">Hallands län</option>
<option value="Jämntlands län">Jämntlands län</option>
<option value="Jönköpings län">Jönköpings län</option>
<option value="Kalmar län">Kalmar län</option>
<option value="Kronobergs län">Kronobergs län</option>
<option value="Norrbottens län">Norrbottens län</option>
<option value="Skåne län">Skåne län</option>
<option value="Stockholms län">Stockholms län</option>
<option value="Södermanlands län">Södermanlands län</option>
<option value="Uppsala län">Uppsala län</option>
<option value="Värmlands län">Värmlands län</option>
<option value="Västerbottens län">Västerbottens län</option>
<option value="Västernorrlands län">Västernorrlands län</option>
<option value="Västermanlands län">Västermanlands län</option>
<option value="Västra Götalands län">Västra Götalands län</option>
<option value="Örebro län">Örebro län</option>
<option value="Östergötlands län">Östergötlands län</option>
</select>
</div>
<div class="col-md-12 form-group mb-0">
<div class="creat_account">
</div>
<textarea class="form-control" name="message" id="message" rows="1" placeholder="Information till säljaren (Frivilligt)"></textarea>
</div>
</div>
<div class="col-lg-4">
<div class="order_box">
<h2>Din Beställning</h2>
<ul class="list">
<li><a href="#"><h4>Produkt <span>Totalt</span></h4></a></li>
{% for item in cartItems %}
<li><a href="#">{{ item }} x {{item.quantity}} <span class="last" >{{ item.get_total_item_price }} Kr</span></a></li>
{% endfor %}
</ul>
<ul class="list list_2">
<li><a href="#">Frakt <span>Gratis Frakt</span></a></li>
<li><a href="#">Totalt <span">{{shopCart.get_total}} Kr</span></a></li>
</ul>
<div class="payment_item active">
</div>
<div class="creat_account">
</div>
<div class="payment_item">
<div class="radion_btn">
<input type="radio" id="f-option5" name="selector" value="Klarna">
<label for="f-option5">Klarna</label>
<img src="{% static 'assets/img/product/klarna.png' %}" alt="">
<div class="check"></div>
</div>
<p>Klarna offers flexible payment options that allow customers more freedom to choose when and how to pay for a purchase.</p>
</div>
<div class="payment_item active">
<div class="radion_btn">
<input type="radio" id="f-option6" name="selector" value="Kort">
<label for="f-option6">Kortbetalning </label>
<img src="{% static 'assets/img/product/card.jpg' %}" alt="">
<div class="check"></div>
</div>
<p>Betala med Kort. Alla betalningar går igenom Stripe Secure Checkout.</p>
</div>
{% if order-namn is None %}
<div class="text-center">
<button type="submit" class="button button-paypal">Fortsätt till Betalning</button>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
在 .html
文件中,使用属性 required
或使用 JavaScript 来验证您的空表单。
那会很方便。
答案 1 :(得分:0)
在客户端,您可以选择将required
属性添加到HTML或使用javascript
或jQuery
验证表单。一个简单的示例是if (my_input_object.value.length == 0) { alert("message"); return false; }
。但是,为了使您的服务器端更具抵抗力,可以说您要检查<input name="Name">
是否为空。您可以通过以下方式检查发布请求的有效负载中的每个变量:
if request.POST['Name']:
news.name = request.POST['Name']
else:
return render(request, 'template.html', {'ERROR':'Input field is empty'})
然后在模板中,您可以捕获{{ ERROR }}
并以您喜欢的任何格式(例如红色,...)呈现它们。
答案 2 :(得分:0)
我是Django的初学者,我会在您的示例中为您提供帮助!
在views.py中这样写:
if request.method == "POST":
test_empty_order-namn = request.POST['order-namn']
test_empty_order-efternamn = request.POST['order-efternamn']
test_empty_order-epost = request.POST['order-epost']
test_empty_order-adress = request.POST['order-adress']
if testempty_order-namn =="" or test_empty_order-efternamn =="" or test_empty_order-epost=="" or test_empty_order-adress == "" :
messages.warning(request,"there is one or more fields are empty!")
return redirect("your page you want to redirect")
我只想在request.POST ['name_input']中说 用于name_input:它代表您为输入提供的名称 例如:
因此它将是: request.POST ['order-namn'] 祝你好运