Ajax忽略了html验证

时间:2017-03-30 17:52:33

标签: javascript jquery html ajax required

$('#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字段的最小值

为什么会这样?

2 个答案:

答案 0 :(得分:0)

在发出ajax请求之前,请先使用$('#formid').valid()方法,详细了解.valid()

答案 1 :(得分:0)

e.preventDefault告诉事件不要执行提交表单的默认操作。

然后你需要填写字段。那很好 - 但他们只会在提交时检查。表单实际上并未在任何时候提交,您已告诉它以防止该操作。

您需要添加$('#form')。submit();或者直接在html标记中添加。

编辑:问题中添加了更多代码。这可能不再适用。

相关问题