Несколько элементов управления в представлении MVC, которые изменяют одно и то же значение модели - PullRequest
0 голосов
/ 15 мая 2009

В моей модели есть поле - назовите его «расстояние» - и я хочу написать представление, содержащее как флажок, так и текстовое поле.

Если этот флажок установлен, текстовое поле отключается, а «расстояние» получает значение 0 при отправке формы.

Если флажок не установлен, «расстояние» получает любое значение в текстовом поле при отправке формы.

У кого-нибудь есть советы, как это сделать? Это логика назначения значения модели на основе состояния обоих элементов управления, которые меня смущают ...

Ответы [ 3 ]

1 голос
/ 16 мая 2009

Поведение модели зависит от того, что представляет флажок. Если это фактическое свойство в модели, вам нужно проверить значение на стороне сервера, а также (необязательно), используя метод javascript aleemb.

Если проверка в этом поле просто представляет нулевое расстояние, тогда достаточно метода aleemb.

1 голос
/ 16 мая 2009

Поведение пользовательского интерфейса может быть реализовано с помощью Javascript через обработчик события onclick на флажке. Единственное значение, которое вам нужно отправить, - это поле ввода, значение которого будет установлено на 0 или любое другое значение, установленное вручную.

С jQuery вы получите:

$('#checkbox_id').click(function() { $('inputfield_id').val('0');
0 голосов
/ 17 мая 2009

Ответ 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);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...