Как проверить текстовое поле на основе выбора переключателей в ASP.NET MVC 3 и JQuery? - PullRequest
2 голосов
/ 26 марта 2012

У меня есть переключатель со значениями «Да» и «Нет».Если пользователь выбирает «Да», текстовое поле сдвигается вниз.Так что это должно быть подтверждено.Если пользователь нажимает «Нет», текстовое поле сдвигается вверх и проверка не требуется.

Я пытался использовать ValidationMessageFor (model => model.TextBoxValue), но я не могу отправить форму как, оно проверяет текстовое поле, даже если оно сдвинуто вверх.

Ответы [ 4 ]

1 голос
/ 26 марта 2012

Библиотека JQuery.Validate может быть разумным решением.Это позволит вам проверить свое поле на основе некоторых условий.Синтаксис довольно выразительный:

$("#SomeFormId form").validate({
                rules: {
                    "YourTextBoxId": {
                        required:  {
                            depends: function(element) {
                                return $("#YourCheckBoxId").is(":checked");
                            }
                        }
                    }

// Writing this is notepad, you'll have to look up the syntax if you choose this approach.
0 голосов
/ 26 марта 2012

Я предполагаю, что вы используете jquery для перемещения textbox вверх и вниз.Другим способом было бы переключение атрибута disabled textbox с помощью jQuery при его перемещении вверх или вниз.Отключенные элементы не отправляются на сервер.

edit: я бы сказал, сразу после или прямо перед кодом для выдвижения textbox, вы бы сделали что-то вроде

<<when showing the textbox
$("#textbox-id").attr('disabled', false);

<<when hiding the textbox
$("#textbox-id").attr('disabled', true);

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

edit2: Только что запомнилВам также необходимо проверить значение checkbox при отправке формы.Если флажок установлен, отметьте textbox, если нет, не устанавливайте.

0 голосов
/ 26 марта 2012

Насколько я понял, вы хотите проверить состояние радиокнопки, соответственно показать / скрыть текстовое поле. Когда показано, оно должно быть проверено, когда скрыто, проверка не требуется.

Я бы предложил включить проверку во время рендеринга. Теперь, основываясь на выделении, вы показываете / скрываете текстовое поле, поэтому поместите следующий код в $ (document) .ready ()

    // select the radio button
    var radioBtn = $('#radioBtn1');
    var initialState = radioBtn.is(':checked');

    // hide/show
    var textbox = $('#txtBox1')[initialState ? 'show' : 'hide']();

   // Show/hide based on radio button selection
   radioBtn.click(function () {
        textbox[initialState ? 'show' : 'hide']();
   });
}

Надеюсь, это поможет, Привет

0 голосов
/ 26 марта 2012

Добавить скрытое поле, которое отслеживает показ текстового поля или нет. Проверьте поле перед проверкой.

Вы даже можете использовать javascript, чтобы увидеть, является ли textbox.style.display == «скрытым», и запустить функцию проверки из этого.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...