我正在使用Kendo UI进行文件上传。我想从DOM树中获取正确的属性。
在我的cshtml上我有:
<input name="target" id="target" type="file" />
然后我想获取每个文件的值 - 所以我在我的js中执行以下操作:
$('input[name="target"]').each(function () {
console.log($('input[name="target"]'));
// get the value of each file - do something with value if set - not if blank
});
在控制台中,我看到以下内容 - 两个输入,一个带有#target,一个没有 - 不确定原因:
如果我展开0:input元素,我得到以下内容,所以在这种情况下输入值有一个值:
值:“C:\ fakepath \ MyDoc.txt”
展开1:input#target并向下滚动到空白的值为“”。
在我的.each中(函数如何提取每个输入的值,所以在pesudo代码中我想做类似的事情:
foreach (input in (input[name="target"])
{
if (input.val() != "")
{
alert("Value Found");
alert(input.val();
}
else
{
alert("No Value Found");
}
}
在我的$ .each中执行Brian所说的和一个console.log(this)给出:
<input name="target" type="file" data-role="upload" multiple="multiple" autocomplete="off" tabindex="-1" style="display: none;">
<input name="target" id="target" type="file" data-role="upload" multiple="multiple" autocomplete="off">
因此,这会拉出两个单独的输入但不包含value属性,在一种情况下,它将是文件“C:\ Desktop \ MyDoc.txt”,另一个值将为空白“”
答案 0 :(得分:0)
在this
回调中使用each
而不是jQuery选择器
使用this
$(this).val();
值
有关this
的更多信息,请阅读有关this
和对象方法here的文档
$('input[name="target"]').each(function () {
console.log($(this).val()); // 'this' is each iteration of the each loop
});