gpt4 book ai didi

jquery - 为什么我的复选框的值在我的 ASP.NET Core Web 应用程序中由 jQuery 设置时不会发布到我的 Controller ?

转载 作者:行者123 更新时间:2023-12-04 15:20:35 24 4
gpt4 key购买 nike

我在我的 Web 应用程序中使用适用于 ASP.NET Core 的 KendoUI。我有一个特定列的自定义编辑器,当有人在网格中编辑数据时使用该编辑器。网格设置为 auto-sync="true"以便用户可以编辑单元格中的数据并自动提交更改。

在自定义编辑器中是我根据特定条件使用 jQuery 设置的复选框。即使此功能有效并且复选框变为“已选中”, Controller 收到的值始终是 false .

这是我的网格。

/Views/Home/Index

<kendo-grid name="HomePositionGrid" deferred="false">
<datasource type="DataSourceTagHelperType.Ajax" auto-sync="true">
<transport>
<read url="/Position/ReadPositions" />
<update url="/Position/UpdatePosition" />
</transport>
<schema>
<model id="Id">
<fields>
<field name="Id" editable="false" />
</fields>
</model>
</schema>
</datasource>
<editable mode="incell" />
<columns>
<column field="Name" title="Name" />
<column field="ExpectedOffhire" editor="expectedOffhireEditor" title="ExpectedOffhire" />
</columns>
</kendo-grid>

如您所见,它是一个带有 auto-sync 的标签助手网格设置为 trueexpectedOffhireEditor 的自定义编辑器定义。

这是编辑器

wwwroot/js/expectedOffhireEditor

function expectedOffhireEditor(container, options) {
$('<input name="' + options.field + '" id="' + options.field + '" />')
.appendTo(container)
.kendoDateTimePicker({
valuePrimitive: true
});

$('<input name="PPT" id="PPT" />')
.appendTo(container)
.kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
optionLabel: "-- Select --",
change: setPromptDate,
dataSource: [
{
value: 1,
text: "Prompt"
},
{
value: 2,
text: "Prompt AM"
},
{
value: 3,
text: "Prompt PM"
}
]
});
$('<input type="checkbox" id="Prompt" name="Prompt" for="Prompt" />').appendTo(container)
}

这里创建了三个输入,第一个是日期时间选择器,第二个是下拉列表,第三个是基本复选框。当用户从下拉列表中选择一个选项时,它必须将复选框设置为 checked这是由名为 setPromptDate 的更改事件处理的.

设置提示日期

function setPromptDate(e) {           
$('#Prompt').prop("checked", true);

//shortened for brevity ...
}

当数据从网格发布并到达 Controller 时,复选框的值始终为false。我尝试过各种方法,但是 prompt复选框只是没有发布。如果我自己使用鼠标选中该框,该值将显示为“true”,这与使用运行不佳的 jquery 设置选中状态有关。

有没有人遇到过这个谁可以阐明什么是错的?

最佳答案

正如您所说的“如果我自己使用鼠标选中该框,该值将显示为 true”。我猜 setPromptDate没有按预期工作。更具体地说,$('#Prompt').prop("checked", true)没有改变 input type='checkbox' HTML 标记正确。我会尝试以下操作:

  1. $('#Prompt').checked
  2. $('#Prompt').prop('checked')
  3. $('#Prompt').attr('checked')
  4. $('#Prompt').attr('checked', 'true')

或者通过其他方式到达<input type="checkbox" checked> .

关于jquery - 为什么我的复选框的值在我的 ASP.NET Core Web 应用程序中由 jQuery 设置时不会发布到我的 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63414161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com