我在一个表单中有两个提交按钮,并且提交都链接到一个文本框。 当按下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并单击“提交”(“获取信息”)后,将显示所有其他字段,并隐藏上一个提交(“获取信息”)。
答案 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')
});