空的必填字段不会阻止提交表单

时间:2015-12-24 19:42:18

标签: javascript jquery html forms

这里我有一个文本编辑器和一个预览按钮。预览按钮的工作是从编辑器获取内容并将其附加到div中并创建另一个名为"提交"。我附加的按钮一个点击事件到这个按钮按钮,它将提交表单。但问题是,如果我将任何必填字段留空,表单仍然会被提交。如果我离开标题字段为空,表单元素内的提交按钮被阻止如果所需的标题字段仍然为空,则提交表单,但外部表单提交按钮提交表单。

如何防止这种情况?

    /// <param name="sourceFileName">The filename of the source file. Presumed to exist.</param>
    /// <param name="destinationFileName">The filename of the target file. Will be overwritten.</param>
    /// <param name="key">The key to encrypt with</param>
    /// <param name="mode">The mode of encryption. Use Engine.* constants.</param>
    /// <param name="blockSize">The chosen block size.</param>
    public static void StartEncryption(String sourceFileName, String destinationFileName, String key, byte mode, int blockSize = 16)
    {
        if (mode != ECB && mode != CBC && mode != CFB && mode != OFB)
        {
            throw new Exception("Invalid block cipher mode of operation.");
        }
    }

2 个答案:

答案 0 :(得分:0)

您可以使用novalidate

<form action="test.php" novalidate="novalidate">

答案 1 :(得分:0)

通过.submit()方法提交表单时,验证不会自动完成。

在现代浏览器中,您可以使用有效性API来强制进行验证检查。

$(document).on("click", "#sub", function() {
    var form = $("#editorform")[0];
    if (!form.reportValidity || form.reportValidity()) {
        form.submit();
    }
});

!form.reportValidity测试允许此功能在旧浏览器上运行,他们会跳过检查。

DEMO