Javascript 提交复选框状态,不带提交按钮
我有一个带有几个复选框的视图,可以选择或取消选择。我希望总是在复选框中注册任何更改,而不使用提交按钮(用户可能会忘记这样做,这将浪费时间) 那么,有没有办法在视图中处理这个问题?到目前为止,我只使用控制器来完成这项工作 那么,一段代码:Javascript 提交复选框状态,不带提交按钮,javascript,vb.net,asp.net-mvc-3,razor,Javascript,Vb.net,Asp.net Mvc 3,Razor,我有一个带有几个复选框的视图,可以选择或取消选择。我希望总是在复选框中注册任何更改,而不使用提交按钮(用户可能会忘记这样做,这将浪费时间) 那么,有没有办法在视图中处理这个问题?到目前为止,我只使用控制器来完成这项工作 那么,一段代码: @ModelType MvcApplication.OpportuniteDetails @Code ViewData("Title")="Details" @End Code <script type="text/jav
@ModelType MvcApplication.OpportuniteDetails
@Code
ViewData("Title")="Details"
@End Code
<script type="text/javascript">
$(function () {
$(':checkbox').change(function() {
$.ajax({
url: '@Url.Action("update")',
type: 'POST',
data: { isChecked: $(this).is(':checked') },
success: function (result) { }
});
});
});
</script>
[... Some code here...]
@Html.Raw("Mail sent?") @Html.CheckBox(Model.Opportunite.Mail)
<input type="checkbox" name="mail" id="mail" onclick="test()" />
@ModelType mvcapapplication.OpportunitedDetails
@代码
ViewData(“标题”)=“详细信息”
@结束代码
$(函数(){
$(':复选框')。更改(函数(){
$.ajax({
url:“@url.Action(“更新”)”,
键入:“POST”,
数据:{isChecked:$(this).is(':checked')},
成功:函数(结果){}
});
});
});
[…这里有一些代码…]
@Html.Raw(“已发送邮件?”)@Html.CheckBox(Model.opportunity.Mail)
您可以使用AJAX:
$(function() {
$(':checkbox').change(function() {
var form = $(this).closest('form');
$.ajax({
url: form.attr('action'),
type: form.attr('method'),
data: form.serialize(),
success: function(result) {
}
});
});
});
在本例中,我们订阅每个复选框的更改事件。触发此事件时,我们将查找包含表单并使用AJAX请求将其内容发送到服务器
如果您只想将当前复选框状态提交给服务器,而不是整个表单:
$(function() {
$(':checkbox').change(function() {
$.ajax({
url: '@Url.Action("SomeAction")',
type: 'POST',
data: { isChecked: $(this).is(':checked') },
success: function(result) {
}
});
});
});
您可以使用控制器操作来执行必要的处理:
[HttpPost]
public ActionResult SomeAction(bool isChecked)
{
...
}
您可以使用AJAX:
$(function() {
$(':checkbox').change(function() {
var form = $(this).closest('form');
$.ajax({
url: form.attr('action'),
type: form.attr('method'),
data: form.serialize(),
success: function(result) {
}
});
});
});
在本例中,我们订阅每个复选框的更改事件。触发此事件时,我们将查找包含表单并使用AJAX请求将其内容发送到服务器
如果您只想将当前复选框状态提交给服务器,而不是整个表单:
$(function() {
$(':checkbox').change(function() {
$.ajax({
url: '@Url.Action("SomeAction")',
type: 'POST',
data: { isChecked: $(this).is(':checked') },
success: function(result) {
}
});
});
});
您可以使用控制器操作来执行必要的处理:
[HttpPost]
public ActionResult SomeAction(bool isChecked)
{
...
}
如果您不需要或不想要AJAX,只想提交表单,那么
$(':checkbox').change(function() {
var form = $(this).closest('form');
form.get( 0 ).submit();
});
就可以了。如果您不需要或不想要AJAX,只想提交表单,那么
$(':checkbox').change(function() {
var form = $(this).closest('form');
form.get( 0 ).submit();
});
会的。Thx很多,在阅读了关于AJAX的howto之后,我会检查一下,以了解我的工作。所以,我明天一定会回答的。我已经编辑了我的问题。我读过一些关于javascript/ajax的文章。像我那样应用代码是不够的。我没有进入我通过放置警报创建的控制器,我看到代码在“change(function){…}”中运行,但在“$.ajax({…})”中没有运行。这部分代码应该做什么?您能给我一些关键字来帮助我查找有关它的信息吗?@patxy,$.ajax函数(顾名思义)向give url发送一个ajax请求,并传递数据参数中包含的参数。因此,在本例中,它将调用
SomeAction
操作,并将isChecked=true
或isChecked=false
参数传递给它。一般来说,您可能会考虑更多地阅读Ajax,并使用JavaScript调试工具,如FixBug来准确地查看发送给服务器的内容并分析请求和响应。所以,我明天一定会回答的。我已经编辑了我的问题。我读过一些关于javascript/ajax的文章。像我那样应用代码是不够的。我没有进入我通过放置警报创建的控制器,我看到代码在“change(function){…}”中运行,但在“$.ajax({…})”中没有运行。这部分代码应该做什么?您能给我一些关键字来帮助我查找有关它的信息吗?@patxy,$.ajax函数(顾名思义)向give url发送一个ajax请求,并传递数据参数中包含的参数。因此,在本例中,它将调用SomeAction
操作,并将isChecked=true
或isChecked=false
参数传递给它。一般来说,您可能会考虑更多地阅读Ajax,并使用JavaScript调试工具如FixBug来准确地查看正在发送给服务器的内容并分析请求和响应。