Разница между методами val() и prop() при работе с входными полями заключается в их назначении:
  - val() предназначен для получения и установки значения атрибута «value» из текущего выбранного узла (ов).                                                                          stackoverflow.com                       С его помощью нельзя получить проверенное или непроверенное состояние входных данных.                                                                          stackoverflow.com                       
  - prop() разработан для извлечения логических свойств из выбранного узла DOM.                                                                          stackoverflow.com                       Его используют, например, для установки свойств disabled и checked элементов ввода и кнопок.                                                                          stackoverflow.com                                                                                               runebook.dev                       
  
 Таким образом, val() больше подходит для работы с текстовыми значениями, а prop() — для управления логическими свойствами элементов ввода.