我正在处理一个联系人表单,我已经设置了必需的属性,但它仍然发送,即使该字段中没有信息。我像这样验证我的字段:
<input type="text" name="grado" id="grado" placeholder="Grado a cursar" required oninvalid="this.setCustomValidity('Por favor, llena todos los campos')" oninput="setCustomValidity('')"/>
字符串
我的js:
<script>
$("#contactForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
$submit = $form.find( 'button[type="submit"]' ),
grado_value = $form.find( 'input[name="grado"]' ).val(),
url = $form.attr('action');
/* Send the data using post */
var posting = $.post( url, {
grado: grado_value,
});
posting.done(function( data ){
/* Put the results in a div */
$( "#contactResponse" ).html(data);
/* Change the button text. */
$submit.text('Enviado');
/* Disable the button. */
$submit.attr("disabled", true);
});
});
</script>
型
在提交之前有什么方法可以验证表单吗?
3条答案
按热度按时间cygmwpex1#
Safari提交表单时不考虑其有效性,因此您不能依赖浏览器验证。我现在无法在Safari上测试,但这个解决方案应该可以工作。它基于您的代码,但不使用验证:
首先,在表单中设置
novalidate
属性字符串
然后在提交事件处理程序中检查有效性,并根据需要显示/隐藏错误:
型
备注:
:valid
和:invalid
伪类。ogq8wdun2#
你必须
return: false;
来阻止它发送。范例:
字符串
lrl1mhuk3#
首先,对每个表单元素的更改事件的验证将更容易。如果你想在submit中验证并形成一个submission(按顺序),那么我可以想象其中的逻辑。自己做。
字符串