- HTMLとJavaScriptを使用する方法: HTMLフォームを作成し、JavaScriptを使用して編集可能なモードで開くことができます。以下は例です。
<!DOCTYPE html>
<html>
<head>
<script>
function enableEditing() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
inputs[i].removeAttribute("readonly");
}
}
function disableEditing() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
inputs[i].setAttribute("readonly", "true");
}
}
</script>
</head>
<body>
<form>
<label for="name">名前:</label>
<input type="text" id="name" value="John Doe" readonly>
<br><br>
<label for="email">メールアドレス:</label>
<input type="email" id="email" value="[email protected]" readonly>
</form>
<button onclick="enableEditing()">編集可能モードに切り替え</button>
<button onclick="disableEditing()">読み取り専用モードに切り替え</button>
</body>
</html>
上記のコードでは、フォーム内のすべての入力フィールドが初めは読み取り専用(編集不可)となっています。enableEditing()
関数を呼び出すことで、入力フィールドが編集可能になります。disableEditing()
関数を呼び出すことで、入力フィールドが再び読み取り専用になります。
- JavaScriptフレームワークを使用する方法: JavaScriptフレームワーク(例: React、Angular、Vueなど)を使用すると、フォームの状態を管理し、編集可能なモードと読み取り専用モードを切り替えることができます。各フレームワークには、フォーム状態を制御するための特定のメソッドやコンポーネントが提供されています。
例えば、Reactを使用する場合は、useState
フックを使用してフォームの状態を管理し、disabled
属性を使用して入力フィールドを編集可能または読み取り専用にします。
import React, { useState } from 'react';
function Form() {
const [name, setName] = useState('John Doe');
const [email, setEmail] = useState('[email protected]');
const [isEditable, setIsEditable] = useState(false);
return (
<div>
<label>名前:</label>
<input type="text" value={name} onChange={(e) => setName(e.target.value)} disabled={!isEditable} />
<br/><br/>
<label>メールアドレス:</label>
<input type="email" value={email} onChange={(e) => setEmail(e.target.value)} disabled={!isEditable} />
<br/><br/>
<button onClick={() => setIsEditable(true)}>編集可能モードに切り替え</button>
<button onClick={() => setIsEditable(false)}>読み取り専用モードに切り替え</button>
</div>
);
}
export default Form;
上記の例では、isEditable
ステートを使用してフォームの状態を管理し、disabled
属性を使用して入力フィールドの編集可能性を制御しています。setIsEditable(true)
を呼び出すことで編集可能モードに切り替え、setIsEditable(false)
を呼び出すことで読み取り専用モードに切り替えることができます。