Javascript-如何正确验证表单数据
Javascript - how to correctly verify form data?
我有一个表单,它有一些文本输入,还有一个文件类型输入,我试图在其中验证所选文件是否为PDF。我是这样做的:
$("#myform").bind("submit", function() {
var ext = $('#file_input').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['pdf']) == -1) {
alert('ERROR!');
}
});
但在上面的代码部分缺少一个-如果除了文件输入(让sat文件是DOC)之外的所有输入都是有效的(=>文件输入无效),并且我点击了提交按钮,则显示警告消息ERROR,但表单已发送。
如果文件类型无效,我如何"停止"发送表单?
试试这个:
$("#myform").bind("submit", function(e) {
var ext = $('#file_input').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['pdf']) == -1) {
e.preventDefault(); //Prevents the default action which is form submit
alert('ERROR!');
}
});
您可以通过以下操作缩短代码:
if (!(/'.pdf$/i).test($('#file_input').val())) {
// not valid, do what you like here
// return false to prevent submit
return false;
该表格因返回虚假信息而无法提交;表单提交事件上的preventDefault在IE 7/8中不起作用,返回false即可。
在绑定到事件的jQuery回调函数中,有两个选项。
您可以将对事件的引用传递给匿名函数并调用e.preventDefault()
:
$('#myform').bind('submit', function(e) {
e.preventDefault();
// Your code
});
e.preventDefault()
阻止默认功能(在本例中,提交表单)。
或者您可以return false
来防止默认功能和防止事件冒泡;与调用CCD_ 4相同。
您有两种方法:
-
保持代码原样并添加
return false
:$("#myform").bind("submit", function() { var ext = $('#file_input').val().split('.').pop().toLowerCase(); if($.inArray(ext, ['pdf']) == -1) { alert('ERROR!'); return false; } });
-
更改函数签名以接受事件并使用preventDefault():
$("#myform").bind("submit", function(e) { var ext = $('#file_input').val().split('.').pop().toLowerCase(); if($.inArray(ext, ['pdf']) == -1) { alert('ERROR!'); e.preventDefault(); } });
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- 在不同的文件中使用Javascript获取表单数据
- 使用Javascript读取Webstorage表单数据
- Uploadify-随机表单数据's已返回上载表单
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 在post-expressjs之后持久化表单数据
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- jQuery发布并获取表单数据
- Ajax表单数据phpPOST不工作
- 如何将整个模型集附加到表单数据中,并在MVC中获得它
- 如何从javascript访问表单数据
- 如何从Angular Payments获取表单数据
- 通过javascript获取pdf文件的表单数据
- 有没有一种方法可以在jQuery.serialize()之前获取表单数据,或者与jQuery.sserialize(()
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 无法读取未定义的属性“用户名” - 通过电子邮件在 Node.js 中发送表单数据
- 使用 Ajax 获取表单数据
- 我无法从引导模式中清除表单数据
- 如何从 django 模板语言获取表单数据