【发布时间】:2014-12-11 08:34:14
【问题描述】:
目前我有一个带有以下代码的链接 NEW IMAGE。
<a class="cmpn_image" href="javascript:void(0);" id="new_page_image">NEW IMAGE</a>
/* Associated function */
$("#new_page_image").click(function() {
imgType = 'NPG';
$("#uptext_new_page").trigger('click');
});
点击链接会打开文件上传窗口。
现在我需要的是,如果 url 中存在值,则在页面加载时触发相同的文件输入。下面显示的是我的代码:
<script>
$(document).ready(function()
{
var param=getparamvalue('p'); // function for getting url paramater
if(param=='new')
{ // upto this is working fine
$("#uptext_new_page").trigger('change'); // not working; here if the paramter is present the file upload window should come triggering the file input
}
});
</script>
<div style="visibility:hidden;">
<form method="post">
<input type="file" name="name" id="uptext" onChange="ajaxUpload(this.form,'imageUpload.php?filename=name&maxSize=9999999999&maxW=1000&relPath=uploads/images/&colorR=255&colorG=255&colorB=255&maxH=400','uploadProgress','<br /><img src=\'images/loader_light_blue.gif\' width=\'128\' height=\'15\' border=\'0\' />','<img src=\'images/error.gif\' width=\'16\' height=\'16\' border=\'0\' /> Error in Upload.'); return false;" />
</form>
<form method="post">
<input type="file" name="name" id="uptext_new_page" onChange="ajaxUpload(this.form,'imageUpload.php?filename=name&maxSize=9999999999&maxW=1000&relPath=uploads/reference/&colorR=255&colorG=255&colorB=255&maxH=400','uploadProgress','<br /><img src=\'images/loader_light_blue.gif\' width=\'128\' height=\'15\' border=\'0\' />','<img src=\'images/error.gif\' width=\'16\' height=\'16\' border=\'0\' /> Error in Upload.'); return false;" />
</form>
</div>
在页面加载本身时,如果参数p 的值为new,则应显示文件上传框。但它不起作用。
我也试过
$("#uptext_new_page").change();
谁能帮我解决这个问题?
提前致谢。
【问题讨论】:
-
try $(document).on('change','$uptext_new_page',function(){}) bcz 我面临同样的问题,我通过这个代码更改解决了
-
尝试使用 jQuery 而不是内联绑定您的事件:
$('#uptext_new_page').change(function() { ajaxUpload($(this).closest('form;), ...); return false; }).trigger('change'); -
@Affan:这应该不是问题,因为 JS 被包裹在
$(document).ready()中,并且没有迹象表明这些字段是在文档准备好后动态添加的。 -
@Jenz:如果你使用
$(this).closest('form'),它会找到this(意思是文件输入)在里面的形式。 -
@Jenz:我不确定你在问什么。如果你做
$('#uptext_new_page').change(function() { var form = $(this).closest('form'); });,那么'change'事件监听器只绑定到#uptext_new_page元素,$(this).closest('form')只会找到当前元素(即#uptext_new_page)在里面的表单。
标签: php jquery html file-upload