我正在检查表单是否有"文件"输入,如果它有一个vlue。 DOM就像:
<form id="form123">
<div class="row">
<input type="file">
</div>
</form>
控制台
console.log($(formId).find('input[type = "file"]').val().length)
// prints 0
if statement
if ($(formId).find('input[type = "file"]').val().length > 0) {
// run function
它始终运行该功能!
答案 0 :(得分:3)
.has()
返回一个jQuery集合,而不是true / false boolean。所以使用:
if ($(formId).has('input[type="file"]').length)
.length
返回.has()
匹配的元素数量。
答案 1 :(得分:0)
我会使用.find()
,因为它有better performance。
if ($(formId).find('input[type="file"]').length > 0) {
}
修改强>
由于.length
是一个整数,我会将它与另一个数值进行比较,而不是像其他答案一样将其评估为布尔值。
if (3 > 0)
看起来比if (3)
更合理,对吧?
答案 2 :(得分:-1)
结束form
标签实际上是一个开放标签,你的意思是?尝试删除属性名称和值class='row'
之间的空格。您也可以尝试$(formId).find(...)