• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:表示専用inputをsubmitしない方法)

表示専用inputをsubmitしない方法

このQ&Aのポイント
  • 表示専用のinputをsubmitする方法について悩んでいます。
  • ページ内のすべての<readonly>属性を持つinputを無効化してsubmitしないようにする方法について助言を求めます。
  • jQueryを使用して<readonly>属性を持つinputを無効化するコードを書きましたが、うまく動作しません。助けが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.3

JQuery を使ってと言いつつ、DOM方式と混ざってるのが敗因のようです。 <script src="jquery-1.8.1.min.js" type="text/javascript"></script> <script type="text/javascript" > $(function(){ $("form").submit(function() { $('input[readOnly]').attr('disabled',true); /* input 要素の 属性[readonly] を持ってる全てに対して、属性 disabled を設定 */ } ); // onsubmit end }); </script>

tomatsu777
質問者

お礼

ありがとうございました! たしかに getElementsByTagName と混在させるのはよくありませんでした。 こちらの記述で要求どおりの処理が行われました。

その他の回答 (2)

  • gorusura
  • ベストアンサー率59% (25/42)
回答No.2

JavaScript が off だった場合はどうするのですか。 JavaScript は飾りです。 JavaScript が使わずにHTMLを書いてから、JavaScript であれこれするんです。 大抵の場合、設計が悪い可能性が高いです。

tomatsu777
質問者

お礼

ご指摘ありがとうございます。 本件は管理画面上でして、限定したブラウザにてJavaScriptの実行が可能であることを前提に制作しております。 とはいえ、あまりクライアントサイドで無茶な処理をしないよう、設計には気をかけるようにいたします。

回答No.1

Array.prototype.forEach.call (document.querySelectorAll ('input[readonly]'),function (e) { e.disabled = true; }); もし、jQuery が不要で、上が動く環境なら1行で。

tomatsu777
質問者

お礼

ありがとうございました! No.3 様の記述と併せて実行してみたところ、この1行で実現が出来ました。

関連するQ&A