【发布时间】:2017-08-04 03:55:07
【问题描述】:
我有一个 HTML 表单,其中包含一些文本字段和图像的文件输入。它具有文本的必填字段,它还对使用 JavaScript (jQuery) 选择的图像进行一些客户端验证。
这是表格:
<form name="addbookform" id="addbookform" action="processaddbook.php" method="POST">
<p />
<input name="name" id="name" type="text" placeholder="Name" required />
<p />
<textarea name="description" id="description" cols=30 rows=4 placeholder="Enter a short description">
</textarea>
<p />
<input name="image" id="image" type="file" accept="image/png, image/jpeg" />
<p />
<input type="button" id="finishbutton" value="Submit" />
</form>
为了对图像进行客户端检查,我编写了一些 JavaScript 代码(使用 jQuery),并将其链接到 finishbutton。
$(document).ready(function() {
$('#finishbutton').click( function() {
var fileInput = document.getElementById("bookimage");
if (fileInput.value == "") {
// We can just submit the form without an image.
addbookform.submit();
} else {
// Check for image size and other properties...
if (success == true) {
addbookform.submit();
}
}
});
});
现在图像检查按预期工作(报告错误或对图像有效),但是,表单上的name 输入中有一个必填字段。当图像检查通过(或没有图像)时,调用提交函数,但似乎 HTML 跳过了必填字段验证。
有没有办法防止这种情况发生?
【问题讨论】:
-
我会使用普通的
type=submit按钮,然后使用$("#addbookform").on("submit", ...)进行任何其他验证,如果图像验证失败则阻止提交,否则只允许默认提交行为继续。跨度>
标签: javascript jquery html forms