次のようなフォームがあったことがあります:
そして、JavaScript を使用してその ID を取得しようとしました:
const form = document.getElementById("#hello") console.log(form.id)
しかし、これにより以下が返されました:
代わりに
HTMLElement を使用します。したがって、この問題を軽減するために、代わりに getAttribute 関数を使用しました:
const form = document.getElementById("#hello") console.log(form.getAttribute('id'))
最初は、この例は問題とは無関係のように思えます。しかし、私の場合、HTMLElementが引数として受け取られるユーティリティライブラリを開発していました:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.id const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
私の場合、この関数を使用してフォームを有効にするロジックを配置しましたが、ID という名前の非表示の入力がフォームの入力フィールドとして使用されていたため、ボタンの取得に失敗しました。
したがって、代わりに次のようにしました:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.getAttribute('id'); const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
フォーム内に存在する入力とその名前に関する id 属性を受け取ったことを確認します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3