使用Bootstrap,应用程序有一个页面,其中包含一个表单和多个面板,每个面板都有一个提交按钮。只要按下Enter键,第一个面板的按钮就是表格默认按钮。当用户在第二个面板中填写文本输入并按Enter键时,应将第二个面板的按钮值发送到Controller,但始终会发送第一个面板按钮的值,即表单默认按钮代替。
我已尝试添加脚本以在单击或激活该面板时触发相应面板按钮上的焦点或激活,但无济于事。当用户使用面板按钮时,是否有人知道如何定位面板按钮以进行提交?提前谢谢!
段:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://bootswatch.com/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default" id="basicsPanel">
<div class="panel-heading">Basic Info</div>
<div class="panel-body">
<div class="row">
<!-- Text boxes and such -->
</div>
<div class="row">
<!-- This is always the default button upon pressing Enter key -->
<button type="submit" id="saveBasics" name="buttonCommand" class="btn btn-success pull-right" value="Save Basics">Save Basics</button>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-info" id="ownerPanel">
<div class="panel-heading">Owner</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-4">
<!-- Other text boxes and such -->
</div>
</div>
<div class="row">
<div class="col-lg-12 text-right">
<!-- This button should be the one used when a User presses the Enter key while filling in data in this panel -->
<button type="submit" id="saveOwner" name="buttonCommand" class="btn btn-success" value="Save Owner">Save Owner</button>
</div>
</div>
</div>
</div>
</div>
</div>
&#13;
尝试脚本的示例,在激活面板时确实关注正确的按钮,但阻止用户实际将信息输入面板的文本框中:
$("#ownerPanel").click(function () {
$("#saveOwner").focus();
});
$("#basicsPanel").click(function () {
$("#saveBasics").focus();
});
答案 0 :(得分:1)
从HTML5开始,the default button is the first button defined。您可以使用输入印刷机来处理多个按钮:
.closest('panel')
,然后再返回到children('input[type=submit]')
。