[英]how to prevent form submission based on date comparison
我有一个表单,我想从用户那里得到一条消息和一个日期。 提交表单时,它们都不能为空。
如果文本字段为空(这是一个 CKeditor 富文本字段),我会阻止表单提交,并且它工作得很好。 但是,当我想检查日期时(不能提交今天之前的日期),它不起作用!
这是我正在尝试做的事情:
<form name="submit_quote" id="submit_quote" action="{% url 'submit_quote' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type = 'date'
class="input_date"
placeholder="yyyy-mm-dd"
name='when_is_required_date_{{ item.tag }}{{ item.id }}'
id='when_is_required_date_{{ item.tag }}{{ item.id }}'
required
min="2021-01-31"
pattern="\d{4}-\d{2}-\d{2}">
<textarea name="message"
id="message"
class="form-control"
maxlength="4096"
onkeyup="textCounter(this,'counter',4096);"
autofocus required
style="height: 150px !important; " ></textarea>
<input
disabled
maxlength="4"
size="4"
value="4096"
id="counter"
style="background-color: rgb(255, 255, 255); border: none; right: 0px;" >
<div class="form-row">
<div class="col-12 col-sm-12 col-md-2 col-lg-2 col-xl-2 mx-auto">
<div class="form-group">
<button class=" btn btn-gray text-light"
style="background-color: #6c757d;"
type="submit"
value="Send"
onClick="return empty()"
>
Send
</button>
</div>
</div>
</div>
</form>
而且,我检查如下输入字段:
<script type="text/javascript">
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = yyyy + '-' + mm + '-' + dd;
console.log('today: ', today);
$('#submit_quote').submit(function()
{
var dateControl = document.querySelector('.input_date');
alert('input date: ', dateControl);
if (jQuery("#cke_1_contents iframe").contents().find("body").text() === "" || dateControl <= today) {
alert('Please enter your message or a correct date.');
return false;
}
});
</script>
如何防止用户提交今天之前的日期或空日期?
如果您比较 2 个字符串,则您是在比较 ascii 代码。
console.log(typeof dateControl); // String
console.log(typeof today); // String
var startOfToday = new Date(today).getTime();
console.log(typeof startOfToday); // Number
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.