$('#addProduct').click(function (e) {
$('#qty').attr('required', 'required');
$('#product_id').attr('required', 'required');
e.preventDefault();
var product_id = $('#product_id').val();
var data = $("#editOrderContent").serializeArray();
data.push(addProduct);
$.ajax({
type: 'POST',
dataType: 'JSON',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: $('#editOrderContent').attr('action'),
data: data,
success: function (html) {
if (html.error) {
$('.wrap_result')
.text(html.error)
.fadeIn(500).delay(3000).fadeOut(500);
}
else if (html.success) {
$('#summary').before(html.tdProduct);
$('#summary_qty').text(html.summaries['qty']);
$('#summary_price').text(html.summaries['price'] + ' $.');
$('#summary_sum').text(html.summaries['sum'] + ' $.');
$('#product_id').val('');
$('#qty').val(1);
}
}
});
});
这两个字段有必需的属性,但是ajax在这些字段中仍然完成,即使是空值,ajax也会忽略#qty字段的最小值
为什么会这样?
答案 0 :(得分:0)
在发出ajax请求之前,请先使用$('#formid').valid()
方法,详细了解.valid()
答案 1 :(得分:0)
e.preventDefault告诉事件不要执行提交表单的默认操作。
然后你需要填写字段。那很好 - 但他们只会在提交时检查。表单实际上并未在任何时候提交,您已告诉它以防止该操作。
您需要添加$('#form')。submit();或者直接在html标记中添加。
编辑:问题中添加了更多代码。这可能不再适用。