将按钮值从脚本发送到控制器
Send Button Value to Controller from Script
>假设有一个带有多个输入按钮的 .NET 引导窗体。 当用户按 Enter 键时,无论用户在哪个面板中修改数据,默认按钮值都会发送到控制器。 我认为代码确定哪个面板处于活动状态以及哪个按钮对应于该面板,但是如何将正确的面板的按钮值发送到控制器? $closestButton.提交();没有工作,我在这里搜索问题找不到答案。 提前感谢!
控制器:
[HttpPost]
public ActionResult SaveData(SaveDataViewModel model, string buttonCommand)
{
if (buttonCommand == "Save Basics")
{
//Do stuff
}
else if (buttonCommand == "Save Owner")
{
//Do other stuff
}
return View();
}
观点:
<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 the default button upon pressing Enter key, and its value is always sent to the Controller -->
<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>
最后,检测按下了哪个按钮,但无法设置"buttonCommand"值的脚本:
$(document).keypress(function (e) {
if (e.which == 13) {
var $activeElement = document.activeElement.id;
var $closestPanel = $($activeElement).closest('panel');
var $closestButton = $($closestPanel).children('input[type=submit]');
//Got the intended button, now how to send its value?
}
});
这里的答案是:a) 捕获按键事件并测试它是否是 Enter 键; b) 如果是,请调用函数以防止默认行为;c) 获取活性元素;d) 获取最近面板的 id 属性;e) 检查面板名称是否等于页面的面板名称之一,并在该面板的按钮 ID 上调用 .click()。
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- ASP.Net MVC 脚本无法使用控制器的默认操作 URL.使用控制器/操作 URL 也是如此
- 将消息从控制器传递到视图中的 AJAX 脚本
- 将按钮值从脚本发送到控制器
- 如何确保Rails资产管道中的JQuery脚本在控制器特定的JS之后被调用
- 如何将变量从Angular控制器传递到html<脚本></脚本>
- 访问脚本中的角度控制器
- 如何将值从可视化力量组件中的脚本传递到其控制器
- AngularJS UI 路由器:包含控制器脚本的位置
- 通过Web脚本的javascript控制器从Alfresco的alfresco-global.properties文件中
- Angular 脚本中的控制器错误 - [$injector:modulerr]
- 在 AngularJS 中将脚本包含在控制器、工厂和服务中
- Java 脚本到 MVC:通过 Actionlink 传递的控制器变量
- 摩卡如何公开节点控制器函数来测试脚本
- 性能方面:拥有许多小型 ajax php 控制器脚本还是一个大型脚本更好
- 从 CodeIgniter 控制器执行 Java 脚本代码
- 想要关闭弹出窗口并在控制器上执行 PHP 脚本后重定向到相应的页面,没有任何事件
- 如何将html脚本变量传递给控制器
- 脚本在主控制器中激发两次
- Angular+Jade |从控制器到脚本标记的数组