환경 설정 양식을 'Enter' 키로 제출하면 기본 방식으로 제출됩니다

main discourse(61e0db0e80)에서 사용자 설정 양식을 “Enter” 키를 눌러 제출할 때(예: 이름을 변경한 후), 양식이 네이티브 방식으로 제출됩니다.

이로 인해 같은 페이지로 GET 요청이 발생하며, 데이터베이스에 변경 사항이 저장되지 않습니다.

재현 단계:

  1. 설정 페이지에 액세스합니다.
  2. 이름을 입력하거나 변경합니다.
  3. Enter 키를 누릅니다.
  4. 페이지가 새로고침됩니다.

메타에서 재현이 되지 않습니다. 방금 테스트해 보니 정상적으로 작동하네요.

여기서도 확인해 주실 수 있을까요?

네, 다음 환경에서 재현할 수 있었습니다:

  • Firefox ESR v140.5.0esr - 64비트, 깔끔한 프로필 (플러그인 없음, 사용자 정의 설정 없음)
  • 모든 플러그인이 비활성화된 Chromium v142.0.7444.175

저는 Debian 13을 사용 중이며, 두 브라우저 모두 Debian 저장소에서 설치했습니다.

1개의 좋아요

매우 이상하네요. 제 브라우저(Firefox 45.0.2/Chromium: 143.0.7499.40)에서는 재현이 되지 않습니다.

라고 하셨을 때, Meta에서 테스트를 하고 있지 않은 것 같다는 생각이 듭니다.

참고로, 메타 환경에서 재현할 수 있습니다 :raised_hand:

이름을 입력한 후 ‘Enter’ 키를 누르면 페이지가 새로고침되고 값이 비워집니다.

페이지가 새로고침되기 전에 해당 버튼을 누를 기회가 없었기 때문에, 변경 사항이 저장되지 않았거나 저장할 수 없었던 것으로 추정됩니다.

예상 시간: 데스크톱(Windows)에서 Firefox와 Chrome 양쪽 모두에서 발생하는 것으로 보입니다.

1개의 좋아요

좋아, 알았어. 왜 재현이 안 되는지 궁금하네 :confused:

잘 모르겠어요 :man_shrugging: :slight_smile:

하지만 재현이 가능하다면, 어떤 부분을 확인해야 할까요? 다시 시도해 보고 정보를 제공할 수 있는지 확인해 볼게요.

예상 소요 시간: 새로고침 시 URL에 잠시 ‘?’가 추가되는 것을 확인했는데, 이 정보가 관련이 있을까요?

1개의 좋아요

이 문제는 깨끗한 dv 환경에서 100% 재현 가능합니다.

최신 Chrome에서:

dv new enter-submit
http://enter-submit.localhost/session/user1/become
방문
http://enter-submit.localhost/u/user1/preferences/account
이름 변경
엔터 클릭

페이지가 다시 로드됩니다.

/frontend/discourse/app/controllers/preferences.js 파일에서 @martin / @j.jaffeux 님은 이런 것에 대해 어떻게 생각하시나요:

      
    @action
    preventSubmit(event) {
       event?.preventDefault();
    }
    <form class="form-vertical" {{on "submit" this.preventSubmit}}>
       {{outlet}}
     </form>
   </section>

이러한 매우 구체적인 경우에서 실제 폼이 아닌 폼을 가지고 있다는 것은 다소 이상해 보입니다.

2개의 좋아요

"모든 브라우저 플러그인이 비활성화된 상태"라는 뜻이었어요 (웹사이트의 원래 동작을 깨뜨릴 수 있는 다양한 도구를 사용하거든요)

메타에서도, 그리고 완전히 새로 만든 깨끗한 개발 환경에서도 모두 테스트해 봤습니다.

1개의 좋아요