MVC视图中的多个控件,用于修改相同的模型值

时间:2009-05-15 19:10:55

标签: asp.net-mvc controls

我的模型中有一个字段 - 称之为'距离' - 我想写一个包含复选框和文本框的视图。

如果选中该复选框,则文本框将被禁用,并且在提交表单时,“distance”将获得值0.

如果未选中该复选框,则“距离”会在提交表单时获取文本框中的任何值。

有人有任何指导如何做到这一点?这是基于两个让我感到困惑的控件的状态来分配模型值的逻辑......

3 个答案:

答案 0 :(得分:1)

可以通过复选框上的onclick事件处理程序使用Javascript完成UI行为。您需要提交的唯一值是输入字段,其值将设置为0或手动设置的任何值。

使用jQuery,您将拥有:

$('#checkbox_id').click(function() { $('inputfield_id').val('0');

答案 1 :(得分:1)

模型行为取决于复选框所代表的内容。如果它是模型上的实际属性,那么您将需要使用aleemb的javascript方法检查值服务器端以及(可选)。

如果在该字段中检查只是表示零距离,那么aleemb的方法就足够了。

答案 2 :(得分:0)

Aleemb的回答就像一个魅力,只有一些小修改:

$("#Distance_checkbox").click(function() {
    if ($(this).is(':checked')) {
        $("#Distance_textbox").val(0);
        $("#Distance_textbox").attr("disabled", true);
    }
    else {
        $("#Distance_textbox").val("");
        $("#Distance_textbox").attr("disabled", false);
    }
});