我有点使用serializeArray解决了表单问题,但是你可能知道它缺乏对输入/文件的支持,所以决定将它与我的序列化数据合并。现在我创建了对象,我用.val()得到了文件的名称。但我不能成像。例如,我想这样做:
alert(jQuery('.inputBox#pic').attr(src));
var obj = {'name' : 'pic',
'value' : jQuery('input#pic').src};
唯一的问题是它不起作用。我无法准备上传图像源。如果没有它,我无法成功发布POST请求。
答案 0 :(得分:0)
您可以查看jQuery.form,它可以用来表示您的表单。它还supports file input fields。
答案 1 :(得分:0)
alert()
电话有什么意义?你想用src
属性做什么? jQuery(selector).src不执行任何操作,因为您无法以这种方式访问img
元素或其属性。
如果您想要src
的值,请使用:
var imgSrc = $('#pic').attr('src');
// or
var obj = {
'name' : 'pic',
'value' : $('#pic').attr('src');
};
我不确定你打算如何以这种方式执行文件上传,但这就是你要做的。不过,我建议略读jQuery documentation,以确保您了解jQuery DOM操作的基础知识。您总是使用.attr()
来获取或设置jQuery结果的元素属性。如果要访问实际的元素对象或其属性,则需要使用:
var elPic = $('#pic')[0];
// or
var imgSrc = $('#pic')[0].src;
此外,将ID选择器与类选择器混合通常没有意义,因为ID应该是唯一的。
最后,我假设“.attr(src)
”在您的代码中是一个拼写错误,但如果不是,那么您需要刷新JavaScript以便了解变量和字符串文字之间的差异。 String literals需要用单引号或双引号括起来,否则JavaScript认为你传递了一个名为src
的变量而不是字符串“src”。
答案 2 :(得分:0)
您不能以这种方式发布文件。
即使您能够获得文件的完整源代码(在某些浏览器中甚至不允许),它也将是您无法访问的本地文件的地址。
将文件发布到服务器的唯一方法是发布上载控件所在的表单。出于安全原因,没有其他方法可以从客户端计算机获取文件。这意味着您必须在页面上发布实际表单,不能发布AJAX帖子。