Я знаю, що на це питання вже відповіли, і більшість з них пропонують використовувати readonlyаттрибуцію.
Я просто хочу поділитися своїм сценарієм і відповісти.
Після додавання readonlyатрибута до мого HTML-елемента я зіткнувся з проблемою, що я не в змозі зробити цей атрибут настільки requiredдинамічно.
Навіть пробував настройки і як readonlyі requiredпри створенні HTML.
Тому я пропоную не використовувати, readonlyякщо ви хочете встановити його requiredтакож.
Замість використання
$("#my_txtbox").datepicker({
// options
});
$("#my_txtbox").keypress(function(event) {
return ( ( event.keyCode || event.which ) === 9 ? true : false );
});
Це дозволяє лише натискати tabклавішу.
Ви можете додати більше ключових кодів, які ви хочете обійти.
Я нижче коду, оскільки я додав обидва, readonlyі requiredвін все ще подає форму.
Після readonlyйого видалення працює належним чином.
https://jsfiddle.net/shantaram/hd9o7eor/
$(function() {
$('#id-checkbox').change( function(){
$('#id-input3').prop('required', $(this).is(':checked'));
});
$('#id-input3').datepicker();
$("#id-input3").keypress(function(event) {
return ( ( event.keyCode || event.which ) === 9 ? true : false );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link href="https://code.jquery.com/ui/jquery-ui-git.css" rel="stylesheet"/>
<form action='https://jsfiddle.net/'>
Name: <input type="text" name='xyz' id='id-input3' readonly='true' required='true'>
<input type='checkbox' id='id-checkbox'> Required <br>
<br>
<input type='submit' value='Submit'>
</form>