gpt4 book ai didi

javascript - Ajax.BeginForm onBegin 不设置值

转载 作者:行者123 更新时间:2023-11-29 14:53:38 25 4
gpt4 key购买 nike

也许这是一个愚蠢的问题,但我还没有找到它......但是。

我在 MVC 中有一个带有 Ajax.BeginForm 的 View 。该模型有一个属性值(字符串)。这是 View 的一部分:

@using (Ajax.BeginForm("Edit", "TheController", new AjaxOptions {
UpdateTargetId = "Target",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "loader",
OnBegin = "SetValues()"
})) {
@Html.HiddenFor(x => x.Value)

<label>A label</label>
<input type="text" id="anInt"/>
<select id="aMeasurement">
<option value="px">PX</option>
<option value="%">%</option>
<option value="em">em</option>
</select>

<input type="submit" id="submitButton" value="Submit it"/>
}

SetValues 函数:

function SetValues(){
$("#Value").val($("#anInt").val() + $("#aMeasurement").val())
}

例如,这应该在隐藏字段“值”中设置 100px。

提交论坛时,我希望“Value”字段成为 anInt 和 aMeasurement 的组合,但事实并非如此。我使用 Chrome,当我检查元素时,我看到在隐藏元素“值”中设置了正确的值,但是当我调试 Controller 时,该值是空的。

当我调试 JS 时,我看到函数 SetValues 被调用,我还看到在值元素中设置了正确的值。 JS 函数完成后,Visual Studio 在 Controller 中正确方法的断点处中断。

我似乎无法弄清楚为什么这不起作用。或者我处理这个问题的方式不对。

有人知道如何做或有更好的主意吗?

更新

感谢 ryanulit 和 Scott MacMaster,我想到了这个:

我在表单中添加了一个 ID 并添加了这个小 JS 脚本:

$(function(){
$("ID_OR_NAME_FORM").submit(function () {
... Do stuff
});
});

一旦表单被提交(并且在向 Controller 发送数据之前),Javascript 中的提交函数就会被调用。这将为我设置正确的值,然后将数据发布到 Controller 。

最佳答案

我对这个问题的解决方案很简单:

$("#Form_Id_You_Have_To_Change").on("submit", function () { SetValues(); });

关于javascript - Ajax.BeginForm onBegin 不设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531356/

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