将mvc razor复选框链接到razor文本框

时间:2014-11-24 16:39:50

标签: javascript c# jquery asp.net-mvc-4 razor

tl; dr我想仅在选中复选框时才将文本框的值保存到模型中。

首先,我知道我的代码非常混乱。我一直试图将我的代码从另一个堆栈溢出问题中即兴发挥,因此它首先是错误的。我想要做的是我对一个事件有这些限制,有些是bool,有些是数字。例如,禁止吸烟是一种布尔,但最低年龄是一个数字。这些是可选的,用户不必设置任何。所以我想要一个复选框说他们想要限制,但也要将值保存到模型中。以下是我到目前为止的情况:

<p>
    <input type="checkbox" id="ageLowCapCB" 
    @(((Model.currentRestrictions.AgeLowCap != null) && 
      (Model.currentRestrictions.AgeLowCap != 0)) ? "checked = 'checked'" : "") 
    /> 
    Low Age Limit
    @Html.TextBoxFor(e => e.currentRestrictions.AgeLowCap, new {id = "ageLowCap"})
</p>

我的脚本/ jquery是:

$("#ageLowCapCB").click(function () {
    var isChecked = $(this).is(":checked");

    $("#ageLowCap").val(isChecked ? /*I don't know what to put here*/);
});

我提出的问题是使用&#34; T&#34;或&#34; F&#34;对于真和假,所以他们很容易填写评论部分&#34; T&#34; :&#34; F&#34;就是这样。但我需要拉取文本框的值并将其设置为Model.currentRestrictions.AgeLowCap的值。有没有人对像这样的奇怪情况做什么有什么好的想法?

2 个答案:

答案 0 :(得分:0)

不幸的是,有将javascript值传递给c#view model的方法。但是有一些解决方法。你可以创建一个动作来接受你想要从javascript传递到c#的任何内容,然后当你需要传递那个值时,可以通过向该动作发出ajax请求来完成,并且在该动作中你可以保持该值( S)。从那里你有很多选择,如数据库,会话等。

答案 1 :(得分:0)

我的理解不是很清楚问题。我理解的是,如果选中Checkbox,则显示接受整数值的文本框。所有这些都是模型领域。

方法1:编写一个JavaScript函数来检测Checkbox检查attr是否为true,显示文本框以接受来自用户的输入;写入文本框的功能只接受整数。 Onkeypress你可以调用该函数。

方法2:如果您不必在文本框中从用户获取整数值,则在post validate中选中复选框,如果为真,则将值赋值给整数文本框。

-Thanks