2016-11-07 2 views
0

Атрибут required одного из моих элементов ввода зависит от состояния одного из этих флажков от checked. Я не могу запустить требуемую полевую ошибку HTML5, динамически устанавливая атрибут required в этом поле.Невозможно проверить требуемое поле динамически

<input type="text" name="date" id="date" /> 
<input type="checkbox" name="immediate" id="immediate" onchange="setRequired(this.checked)" /> 

<script type="text/javascript"> 
    function setRequired(checked) 
    { 
     var date = document.getElementById("date"); 
     if(checked) { 
      date.required = false; 
     } 
     else 
      date.required = true; 

    } 
</script> 

Когда я запустил форму, я не вижу проверки HTML5 на вводе даты.

+1

'date.required = true' и' date.setAttribute ('требуется', 'правда') 'это две разные вещи. Дайте методу 'setAttribute' трещину. Существует разница между переменной-членом javascript и атрибутом html. Для некоторых элементов они эквивалентны на 100%. Для других ситуация немного менее розовая. – enhzflep

+0

'date.required = true' устанавливает атрибут' required' на входе так же, как и другие поля формы. Позвольте мне дать «.setAttribute». –

+0

Попробуйте меньше кода: 'document.getElementById (" date "). SetAttribute ('required', checked)'. ;-) – RobG

ответ

0
<input type="text" name="date" id="date" /> 
<input type="checkbox" name="immediate" id="immediate" onchange="setRequired(this.checked)" /> 

<script type="text/javascript"> 
    function setRequired(checked) 
    { 
    var date = document.getElementById("date"); 
      console.log(checked); 
    if(checked) { 

     date.setAttribute("required",false); 
    } 
    else { 
     date.setAttribute("required",true); 
    } 
    console.log(date); 

}

журнал CONSOLE поможет вам проверить изменения элемент

http://plnkr.co/edit/xFEJchgAqX5g9u2q6iWT?p=preview

Смежные вопросы