Javascript Видимое и ОБЯЗАТЕЛЬНОЕ поле при выборе переключателя в форме - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь написать функцию, которая будет отображать поле, основанное на выборе переключателя, И сделать это поле обязательным. НО, если указанный выбор не сделан, то поле скрыто и не требуется. У меня работает вид переключения - это означает, что он показывает, выбран ли первый переключатель, но я не смог получить его в обязательном порядке. Поле SSN отображается только в том случае, если выбран вариант 1 из поля SocialSecurity.

Вот переключатель в форме:

У вас есть номер социального страхования?

  • (вариант 1) Как гражданин США, постоянный или временно работающий, у меня есть номер социального страхования.

  • (вариант 2) В связи с моим международный статус студента, мой статус резидента или мой конкретный тип визы c, у меня нет номера социального страхования.

Пожалуйста, посмотрите мой код:

$('.field.SocialSecurity input[type=radio]').on("change", function()
{
  switch($(this).val())
  {
    case 'As a U.S. Citizen, permanent resident, or temporary working resident, I have a Social Security Number.':
                $('.field.SSN').show();
                $('.field.SSN').attr('required', '');
                $('.field.SSN').attr('data-error', 'Please enter your Social Security Number.');
      break;

    case 'Due to my international student status, my residency status, or my specific visa type, I do not have a Social Security Number.':
        $('.field.SSN').hide();
        $('.field.SSN').removeAttr('required');
        $('.field.SSN').removeAttr('data-error');

      break;
  }     
});

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Как это?

 $('.field.SocialSecurity input[type=radio]').on("change", function()
{
  switch($(this).val())
  {
    case 'As a U.S. Citizen, permanent resident, or temporary working resident, I have a Social Security Number.':
                $('.field.SSN').show();
                $('.field.SSN').prop('required', true);
                $('.field.SSN').prop('data-error', 'Please enter your Social Security Number.');
      break;

    case 'Due to my international student status, my residency status, or my specific visa type, I do not have a Social Security Number.':
        $('.field.SSN').hide();
        $('.field.SSN').prop('required', false);

      break;
  }     
});
0 голосов
/ 29 января 2020

Иногда это зависит от вашей jquery версии, почему функция attr не работает. Вместо вызова метода removeAttr, вы также можете явно установить значение false? Попробуйте это:

.attr(attribute,value); // syntax

.attr("required", true);
// is the equivalent for required="required"

.attr("required", false);

// Использование .prop

.prop(property,value) // syntax

.prop("required", true);
// is the equivalent for required=""

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