我有三个复选框,它们已检查/取消选中从模型填充的值。我在按钮点击事件中使用Ajax帖子为每个复选框更改事件调用控制器操作以更新数据库。
以下是其中一个复选框的代码(除了选择器ID,它们都是相同的):
$(document).ready(function () {
//document.getElementById('UpdateButton').onclick = function () {
$("UpdateButton").click = function () {
$('#NatAm').change(function () {
// if ($('#NatAm').is(':checked')) {
$.ajax({
//url: '@Url.Action("NativeUpdate", "Transactions")',
url: '/Transactions/NativeUpdate',
//data: { isNativeUp: true },
type: 'POST',
dataType: "json"
});
//}
});
编辑(HTML /查看代码):
@Html.CheckBox("NatAm", (bool)@ViewBag.NativeAm)
<input name="UpdateButton" id="UpdateButton" type="submit" value="Update" style="margin-left: 15px; margin-top: 3px;" class="btn btn-success" />
我无法让这个工作。在添加按钮之前,ajax帖子工作正常。谢谢你的帮助!
答案 0 :(得分:2)
您的点击处理程序不对。您需要传入按钮的id并使用jQuery单击处理程序。您还不需要嵌套处理程序:
1
2
3
4
5
JSFiddle演示:https://jsfiddle.net/vLzwuwdo/
答案 1 :(得分:2)
你告诉JQuery要查找“UpdateButton”标签,在你的情况下这些标签不存在。您错过了#,表示按钮中的ID。
试试这个
$(document).ready(function () {
//document.getElementById('UpdateButton').onclick = function () {
$("#UpdateButton").click(function () {
$('#NatAm').change(function () {
// if ($('#NatAm').is(':checked')) {
$.ajax({
//url: '@Url.Action("NativeUpdate", "Transactions")',
url: '/Transactions/NativeUpdate',
//data: { isNativeUp: true },
type: 'POST',
dataType: "json"
});
//}
}));
答案 2 :(得分:1)
<?php foreach ($items as $v) {
$status = $v->acf['c_status'];
$status_name = get_term_by('id', $status, 'type');
?>
<?php if ($status_name) { ?>
<div class="sb-sidebar-featured-type">
<?php
$title_status = $status_name->name;
$status = explode(' ', $title_status);
?>
<div class="sidebar-featured-transaction"><?=($status_name) ? $status[0] : '';?></div>
</div>
<?php } ?>
在同一文档(id
和NatAm
)中应该是唯一的,用全局类替换重复的文件将解决第一个问题。
您不应该在另一个内部定义事件,因为每次触发第一个事件时它都会为元素创建新事件,在您的情况下,每次单击新的更改事件时都会创建并附加到第一个元素{ {1}}。
希望这有帮助。