フィールドをフライで変更してフォームを作成しようとしています。クリックしたときにテキストエレメントを入力フィールドタイプのテキストに変換し、クリックしたときにテキストに戻る
簡単なテキストで始まり、誰かがこのテキストをクリックすると、編集可能なテキスト入力フィールドに移動します。誰かがクリックすると、編集不可能なテキストに戻ります。
私はそれを行ったが、正しく動作していないようだ。最初の数回のクリックでうまく動作しますが、入力IDが失われてボタンがミックスされています。ここで
は、HTML
<p id="firstElement" onclick="turnTextIntoInputField('firstElement');">First Element</p>
<p id="secondElement" onclick="turnTextIntoInputField('secondElement');">Second Element</p>
されており、ここにはJavaScript(jQueryのを使用して)です。
それは最高品質のコードではないかもしれないので、私はここで
function turnTextIntoInputField(inputId)
{
console.log(inputId);
inputIdWithHash = "#"+inputId;
elementValue = $(inputIdWithHash).text();
$(inputIdWithHash).replaceWith('<input name="test" id="'+inputId+'" type="text" value="'+elementValue+'">');
$(document).click(function(event) {
if(!$(event.target).closest(inputIdWithHash).length) {
$(inputIdWithHash).replaceWith('<p id="'+inputId+'" onclick="turnTextIntoInputField(\''+inputId+'\')">'+elementValue+'</p>');
}
});
}
が、それは私に頭痛を与えているとして、私は任意の助けに感謝しますフィドルhttps://jsfiddle.net/7jz510hg/
上の実際の例です... JavaScriptでかなり新しいです...
[どのように私は(私はそれをクリックしてテキストエリアなど)、編集可能なdiv要素を作るのですか?](HTTPの可能性のある重複: //stackoverflow.com/questions/2441565/how-do-i-make-a-div-element-editable-like-a-textarea-when-i-click-it) – Fundhor
1つのオプションは ' '要素を削除しますが、デフォルトではすべての入力スタイリングを取り除き、テキストのように見せて、フォーカスしているときに戻します。 (CSS ':not(:focus)'が便利になるかもしれません) – Katana314