【问题标题】:Execute on enter-key-press按回车键执行
【发布时间】:2013-11-14 19:27:15
【问题描述】:

我有这个代码

<script>
function cA( url )
{
    document.myform.action = url;
}
</script>

<input type="whatever" name="whatever" id="whatever" />                        
<button class="whatever-button" id="defaultAction" value="Go for it" name="whatever" type="submit" onClick="cA('whatever.php#anchor')" >Go for it                                                                                             
</button>  

当您单击 Go for it 按钮时,正在加载 whatever.php#anchor。我需要如何更改输入标签的元素才能执行与单击按钮相同的cA('whatever.php#anchor')

因此,当用户在字段中按下回车键时,应该加载站点 whatever.php#anchor,或者更具体地说,执行 cA('whatever.php#anchor')

页面有更多按钮,因此将一个按钮设为默认按钮不起作用。

PS:

将所有内容包装在一种形式中不起作用,因为页面的结构是

<form>
    <script>
    function cA( url )
    {
        document.myform.action = url;
    }
    </script>

    <input type="whatever1" name="whatever1" id="whatever1" />                        
    <button class="whatever1-button" id="defaultAction1" value="Go for it" name="whatever1" type="submit" onClick="cA('whatever.php#anchor1')" >Go for it                                                                                             
    </button> 

    <input type="whatever2" name="whatever2" id="whatever2" />                        
    <button class="whatever2-button2" id="defaultAction2" value="Go for it" name="whatever2" type="submit" onClick="cA('whatever.php#anchor2')" >Go for it                                                                                             
    </button> 

    <input type="whatever3" name="whatever3" id="whatever3" />                        
    <button class="whatever3-button" id="defaultAction3" value="Go for it" name="whatever3" type="submit" onClick="cA('whatever.php#anchor3')" >Go for it                                                                                             
    </button> 
    ...        
</form>    

【问题讨论】:

  • 将其转换为&lt;form&gt; 并使用onsubmit 事件
  • @Brewal 我更新了。

标签: javascript html


【解决方案1】:

你可以试试这个:

<input type="whatever" name="whatever" id="whatever" onkeydown="if (event.keyCode == 13) {cA('whatever.php#anchor');}" />    

查看this 帖子了解更多信息。

【讨论】:

  • 啊,谢谢你的关注!我添加了它,所以代码是正确的。
  • 我尝试了你的代码(带引号),但它跳转到whatever.php#anchor1,即使我在输入whatever2中输入了它
  • 嗯,我试过了,但这并没有发生在我身上。您仍然可以通过在 if 语句中添加“event.srcElement.id == 'whatever'”来仔细检查元素。
  • 我将其替换为onkeydown="if (event.keyCode == 13) {alert('Hello');}"。该框出现,但页面无论如何都会重新加载。如何禁用此自动行为?
  • 您需要阻止表单提交。这可以通过添加event.preventDefault(); 来完成。您也可以删除表单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
相关资源
最近更新 更多