我有一个这样的菜单:
<ul class="sub">
<li><a href="#">New</a></li>
<li><a href="#">Open</a></li>
<li><a href="#">Save</a></li>
<li><a href="#">Help</a></li>
</ul>
我希望将onclick附加到Open li上,这会启动文件打开对话框,例如input type="file"
。我可以处理附加代码到li的onclick事件,但我不知道要附加什么代码。
TIA
答案 0 :(得分:6)
您可以向页面添加普通input type="file"
并将其设置为隐藏样式。像这样:
<input type="file" id="theFileInput" style="display:none;" />
(本例仅使用内嵌样式,我建议将样式与标记分开。)
然后,您可以启动单击它以响应目标元素上的单击事件。使用jQuery(假设您可以在id
上设置li
,或者以某种方式在选择器中唯一地标识它),它将类似于:
$('#clickableLiElement').click(function() {
$('#theFileInput').click();
});
input type="file"
仍然存在,可以像任何其他表单元素一样进行交互。它对用户来说是不可见的。但这会启动“打开文件”对话框并将其值正常设置为元素,这可以正常地包含在POST中。
答案 1 :(得分:0)
上面的答案(大卫)有效,但在您的css文件中,您需要这样做:
opacity: 0;
-moz-opacity: 0;
filter:alpha(opacity=0);
display:none
解决方案无法与Chrome或Safari配合使用。
答案 2 :(得分:-1)
class Author(models.Model):
author = models.ForeignKey(User, related_name='+')
With JavaScript