使用ajax提交表单validation时会被忽略

我的页面中有这个javascript函数。

$(document).ready(function(){ $('input[type="radio"]').click(function(){ if($(this).attr("value")=="InfiStallStock"){ $(".e-stock-saldo-box").hide(); $(".InfiStall ul li .infistallLocation").attr('required'); $(".Delivery ul input:radio").removeAttr('required'); $(".Delivery ul input:text").removeAttr('required'); $(".InfiStall").show(); } if($(this).attr("value")=="DeliveryStock"){ $(".e-stock-saldo-box").hide(); $(".InfiStall ul li .infistallLocation").removeAttr('required'); $(".Delivery ul li input:radio").attr('required'); $(".Delivery ul input:text").attr('required'); $(".Delivery").show(); } }); }); function enableList(element) { var select = document.getElementById("select"+element.id.substring(element.id.length-9)); enableSubmit(); showUp(); if(element.checked === true){ select.disabled = false; checkSelect(select); }else{ select.disabled = true; select.selectedIndex = 0; } } function checkSelect(element){ if(!validate_select(element)){ element.setCustomValidity("Pilih Jumlah Estock"); }else{ element.setCustomValidity(""); } } 

这个javascript用于检查用户选择哪个选项。 如果用户选择一个选项,则将忽略/删除另一个需要输入的选项,反之亦然。

如果我直接使用

提交表单,javascript在validation表单方面效果很好。

但是,当我改变现在使用ajax提交它的方式时,将忽略validation。

这是提交表单的ajax脚本:

 $('#btn_submit').on('click', function(e) { e.preventDefault(); var esquantity = $('.row_selected select').map(function() { return $(this).val(); }).get().join('|'); var size = $('.row_selected td.size span').map(function() { return $(this).text(); }).get().join('|'); $.ajax( { type: "POST", url: "../ajax.php", data: 'esquantity='+esquantity+ '&size='+ size, cache: false, success:function(html) { alert("Succes " + html); } }); 

任何人都可以帮我解决这个问题,所以即使我用ajax提交它,这个表格也会有一些validation。 谢谢!

试试 –

在正常按钮上而不是在提交按钮上写下这个事件

 $('#btn_submit').on('click', function(e) { 

那将要求你不要打电话给

 e.preventDefault(); 

在函数中,你可以做的是在ajax调用的回调区域中显式调用submit()函数,即

 success:function(html) { // call submit function explicitly it should validate all your constraints then }