问题在Javascript文档就绪功能中使用隐藏输入值作为参数
我正在将AJAX上传器http://valums.com/ajax-upload/集成到我的应用程序中。默认情况下,脚本将上传的文件转储到一个指定的目录中。我对它进行了修改,以便它接收参数:两个文件夹的名称 - 年和月,因此它可以是例如上传/ 2010/May /而不是上传/但它仍然会转储上传文件夹中的文件,除非我明确声明两个文件夹名称为字符串。问题在Javascript文档就绪功能中使用隐藏输入值作为参数
下面的代码在我的$(document).ready函数中。
var uploader = new qq.FileUploader({
element: document.getElementById('uploadfile'),
action: 'ajax/uploader.php',
allowedExtensions: ["xls"],
params: {
f: '2010',//document.getElementById('fileyear').value,
g: 'May'//document.getElementById('filemonth').value
}
});
如上所见,我评论的实际线,而是用虚拟值检查[和正常工作这种方式。我已经尝试使用f:$(#fileyear).val(),g:$(#filemonth).val(),它没有工作,所以我不得不像上面那样默认document.getElementById。在上传器变量之外,这两个值是正确的。
一个不同的函数将日期存储到这些隐藏的输入中,并且我将它们更改为普通文本输入以确保它们正确存储它们。
我猜这里的问题可能只是上传者可能会设法在创建之前获取(空白)值?或者这是否与上传有关?或者我的文档有问题吗?请我真的需要帮助 - 整天都在我的脑海里喋喋不休。提前致谢!
您为document.getElementByID('fileyear').value
等获得的值将是DOM加载后的值,而不是您通过在表单中键入来改变它的值。
我会将“f”和“g”选项放入上传器调用的函数中以获取这些值。通过这种方式,您将获得通话时的值,而不是它们的初始值(空白?)。
var uploader = new qq.FileUploader({
element: document.getElementById('uploadfile'),
action: 'ajax/uploader.php',
allowedExtensions: ["xls"]
});
$('your_button_id').click(function(){
uploader.setParams({
f: document.getElementById('fileyear').value,
g: document.getElementById('filemonth').value
});
});
或
var uploader = new qq.FileUploader({
element: document.getElementById('uploadfile'),
action: 'ajax/uploader.php',
allowedExtensions: ["xls"],
params: {
f: (document.getElementById('fileyear')) ? document.getElementById('fileyear').value : 2010,
g: (document.getElementById('filemonth')) ? document.getElementById('filemonth').value : 'May'
}
});
这将是一个好主意,丹尼尔。我实际上在文档中看到了setParams。但是看到没有按钮或链接,点击事件是否会对插件强制使用的DIV起作用?同时,尼尔的回答已经帮助了我。也谢谢你! – Cogicero 2011-01-19 16:10:01
你是最好的! :D我刚刚创建了两个函数:一个用于一年,一个用于一个月。它像魔术一样工作!再次感谢尼尔:) – Cogicero 2011-01-19 16:03:27