空的必填字段没有'不要阻止提交表格
empty required field didn't prevent the form from being submitted
这里有一个文本编辑器和一个预览按钮。预览按钮的工作是从编辑器中获取内容,并将其附加在div中,然后创建另一个名为"提交"的按钮。我在这个按钮上附加了一个点击事件,它将提交表单。但问题是,如果我将任何必填字段留空,表单无论如何都会被提交如果我将标题字段留空,表单元素内部的提交按钮将阻止表单提交,但如果所需的标题字段为空,则外部表单提交按钮将提交表单
如何防止这种情况发生?
<form action='test.php' method='post' id='editorform'>
<div id='title'>
<label for='editorTitle' id='foreditorTitle'>Title
<input type='text' placeholder='Title of the content' id='editorTitle' autocomplete='off' required>
</label>
</div>
<div id='editordiv'>
<textarea name="editor1" id="editor1" rows="10" cols="50" required>
This is my textarea to be replaced with CKEditor.
</textarea>
</div>
<div id='preview'>
<input type='button' id='previewButton' value='preview' >
</div>
</form>
<div id='content' style='width:750px;position:relative;top:50px;'></div>
<script>
CKEDITOR.replace( 'editor1');
$("#previewButton").click( function lol(event){
var content=$('#content');
content.html('');
var el=CKEDITOR.instances.editor1.getData();
var html=$.parseHTML(el);
content.append(html);
$("<input id='sub' type='button' value='submit'/>").appendTo(content);
$(document).on('click','#sub',function(){
$("#editorform").submit();
});
});
</script>
通过.submit()
方法提交表单时,不会自动进行验证。
在现代浏览器中,您可以使用有效性API强制进行验证检查。
$(document).on("click", "#sub", function() {
var form = $("#editorform")[0];
if (!form.reportValidity || form.reportValidity()) {
form.submit();
}
});
!form.reportValidity
测试允许这在旧的浏览器上工作,它们将跳过检查。
演示