两个提交按钮问题 -

时间:2011-08-31 20:39:12

标签: javascript html keypress

我在一个表单中有两个提交按钮,并且提交都链接到一个文本框。 当按下Enter键(键盘上)时,有没有办法选择特定的“提交”按钮。

我的HTML:

<form id="myForm" method="post">
id: 
<input type="text" name="id" id="id"/>
<div id="hidden" style="display: none;">
<label>Age:</label>
<input type="text" name="Age"/><br/>
<input type="submit" id="button2" value="Update"/>
</div> 
<input type="submit" id="button1" value ="Get Info" onclick="document.getElementById('hidden').style.display = ''; this.style.display = 'none'"/> 

代码的小解释: 最初除了一个提交(“获取信息”)和id字段外,所有部分都将被隐藏。 用户输入ID并单击“提交”(“获取信息”)后,将显示所有其他字段,并隐藏上一个提交(“获取信息”)。

3 个答案:

答案 0 :(得分:2)

如果没有进入实现此目的所需的JavaScript,表单使用的提交按钮为defined in the spec

基本上,表单将使用它为implicit submission包含的第一个启用的提交按钮。

真的,你想要做的是在表单中添加onsubmit处理程序并阻止默认操作(这样你就可以显示表单的其余部分)。在事件处理程序中,您只需要从表单中删除事件处理程序,以便后续调用提交表单将被正确发送。

答案 1 :(得分:0)

您可以在要点击的按钮上使用.click()方法。

document.forms.myForm.id.onkeyup = function (e) {
    e = e || window.event;
    if (e.keyCode == 13) {
        document.forms.myForm.button1.click();
        if (e.preventDefault) {
            e.preventDefault();
        }
        e.returnValue = false;
    }
};

答案 2 :(得分:0)

我以基本相同的方式解决了另一个问题。这是使用jQuery的简单解决方案

$('form').bind('submit',function(e){ 
    e.preventDefault(); 
    //do whatever processing you need to, then fire your Get Info button
    $('#buttonToTrigger').trigger('click') 
});