Javascript jQuery-检查输入、文本区域的值是否为空,并在同一函数中选择not blank
我有下面的代码,它检查输入、文本区域和选择的值是否为空,但我没有为每个值创建函数,而是尝试使用数组将它们全部存储到一个变量中 但是,当单击处理程序被激活时,即使页面上的所有输入都已填写,也会出现错误消息 有人知道这是什么原因吗 HTML: 试试下面的Javascript jQuery-检查输入、文本区域的值是否为空,并在同一函数中选择not blank,javascript,jquery,html,validation,if-statement,Javascript,Jquery,Html,Validation,If Statement,我有下面的代码,它检查输入、文本区域和选择的值是否为空,但我没有为每个值创建函数,而是尝试使用数组将它们全部存储到一个变量中 但是,当单击处理程序被激活时,即使页面上的所有输入都已填写,也会出现错误消息 有人知道这是什么原因吗 HTML: 试试下面的 $('#saveInvoice').click(function(e) { e.preventDefault(); var $fields = [ $('input'), $('textarea'), $('select') ]; va
$('#saveInvoice').click(function(e) {
e.preventDefault();
var $fields = [ $('input'), $('textarea'), $('select') ];
var $emptyFields = $fields.filter(function(element) {
return $.trim(element.val()) === "";
});
if (!$emptyFields.length) {
saveInvoice();
} else {
alert('Unable to save invoice. There are incomplete item fields.');
}
});
您应该获取数组元素的值将this.value替换为this.val()您有两个问题 第一:Jquery选择器。您已经获取了元素数组$('input')提供所有输入的节点列表。您需要指定要访问值的输入的索引。例如,$(“input”)[0]为您提供在页面上找到的第一个输入 第二:您需要将项传递给过滤器回调函数。此过滤器的内部回调引用窗口
$(“#保存发票”)。单击(函数(e){
e、 预防默认值();
变量$fields=[$('input')[0],$('textarea')[0],$('select')[0]];
var$emptyFields=$fields.filter(函数(ele){
控制台日志(元素值);
返回$.trim(元素值)=“”;
});
如果(!$emptyFields.length){
//保存发票();
}否则{
警报('无法保存发票。存在不完整的项目字段');
}
});代码>
输入:
文本区域:
选择:A
拯救
这种方法很有效,但出于某些原因,它忽略了空白文本区域,原因不明。对我来说很好。。你有多个文本区吗?是的,页面上有两个文本区。您提到,我已经编辑了选择器,只获取主窗体中textarea的值,然后我刚刚为该窗体之外的页面上的textarea添加了另一个函数
$('#saveInvoice').click(function(e) {
e.preventDefault();
var $fields = [ $('input'), $('textarea'), $('select') ];
var $emptyFields = $fields.filter(function(element) {
return $.trim(element.val()) === "";
});
if (!$emptyFields.length) {
saveInvoice();
} else {
alert('Unable to save invoice. There are incomplete item fields.');
}
});