按键输入时页面刷新,但单击鼠标时打开文件系统

时间:2016-03-28 11:55:33

标签: javascript html accessibility

gnomes.forEach { $0.age = 140 }

/* result */
gnomes.forEach { print($0.age) } // 3x 140

这是一个列表,所以它是一个下拉列表。当我通过下拉列表选中并按“确定上传内容”时,页面将刷新而不是打开文件。当我点击鼠标时,它工作正常。

如何在<a href="" tabindex="0"> <label for="my_label" class="my_label" name="Upload" data-bind="attr: { for: 'uploadContent' + SubmissionId() }"> <span>Upload Content</span> </label> <div class="hidden"> <input type="button" id="my_label" class="fileupload" data-bind="event: { change: $parent.upload($data, $element, 'zip', false) }, attr: { id: 'uploadContent' + Id() }" accept="application/zip" type="file"> </div> </a> 输入上打开文件系统?

4 个答案:

答案 0 :(得分:1)

您可以尝试将href =“javascript:void(0)”代替href =“”,如下所示:

mainWindow = new BrowserWindow({width: 1024, height: 764, title: "app", webPreferences: {"nodeIntegration":false}});

答案 1 :(得分:0)

首先删除type="button",因为您已输入type="file"

然后你可以做那样的事情。

function handle_enter(ev){
   if (ev.which == 13)
     return document.getElementById('my_label').click();
   
}
.hidden{
  display:none;
}
<a href="#" tabindex="0" onkeypress="handle_enter(event)">                                       
    <label for="my_label" class="my_label" name="Upload" data-bind="attr: { for: 'uploadContent' + SubmissionId() }">
        <span>Upload Content</span>
    </label>
    <div class="hidden">
        <input id="my_label" class="fileupload" data-bind="event: { change: $parent.upload($data, $element, 'zip', false) }, attr: { id: 'uploadContent' + Id() }" accept="application/zip" type="file">
    </div>
</a>

答案 2 :(得分:0)

将tabindex属性添加到html元素,以使其可聚焦。这允许div,label和其他非导航元素表现如此。这是一个超过js的浏览器功能。

根据您的需要(以及其他html标签),您需要为其指定值-1,0或其他正值。

供参考:

https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex

答案 3 :(得分:0)

这是由空的href引起的。这意味着你可以在没有tabindex属性的情况下通过键盘获得原生焦点,当它被点击时,它会将焦点发送到您发现的页面顶部。

所以你需要为href添加一些有用的东西。 Dhananjaya建议的JavaScript可行。但更有意义的价值是文件输入的id属性,如果JavaScript因任何原因无法使用,它就不会窒息。

看看这对您有效:

<a href="#my_label">                                       
    <label for="my_label" class="my_label" name="Upload" data-bind="attr: { for: 'uploadContent' + SubmissionId() }">
        <span>Upload Content</span>
    </label>
    <div class="hidden">
        <input id="my_label" class="fileupload" data-bind="event: { change: $parent.upload($data, $element, 'zip', false) }, attr: { id: 'uploadContent' + Id() }" accept="application/zip" type="file">
    </div>
</a>