4

入力された innerHTML と入力値について簡単な質問があります。以下の簡単な例を参照してください (便宜上 jQuery を使用しています)。

http://jsfiddle.net/F7urT/2/

jQuery:

jQuery(document).ready(function($) {
    $('.send').click(function() {
        alert( $('.content').html() );
        return false;
    });
});​

html:

<div class="content">
    <input type="text" name="input" value="Old Value" />
    <input type="button" class="send" value="Send" />
</div>​

入力値を編集して [送信] ボタンをクリックすると、アラートは、取得した innerHTML に、ユーザーが入力した値ではなく、「古い値」の入力が含まれていることを示します。どうしてこれなの?また、ユーザーが入力した値を含む文字列として HTML を取得するにはどうすればよいでしょうか?

4

5 に答える 5

8

新しい値は属性ではなくプロパティとして保存されます。値は で取得できinputelement.valueます。値を変更しても属性には影響しません。新しい値の html が必要な場合は、属性を新しい値に設定するだけです。

チェック ボックスとラジオ ボタンの場合は、checked 属性を設定し、テキスト エリアの場合は innerHTML を設定し、selected の場合はオプションの selected 属性を設定します。

http://jsfiddle.net/mowglisanu/F7urT/5/

于 2012-08-25T23:38:29.587 に答える
5

このソリューションの方が優れています。より多くの入力に対して機能します。

  $('input[type=text]').attr('value', function (i, val) { return val; });
  $('input[type=checkbox],input[type=radio]').attr('checked', function () { return this.checked; });
  $('textarea').html(function () { return this.value; });
  $('select').find(':selected').attr('selected', 'selected');
于 2014-10-27T10:32:53.900 に答える
3

.innerHTML( )では取得できません.html()。への書き込み要素は html マークアップを変更せずvalue、実際のマークアップの属性も変更しません。

現在のコンテンツにアクセスするには、.value- 値の要素。jQueryを使用すると、それを介して行うこともできます.val()

于 2012-08-25T23:37:36.477 に答える
3

$('#input_id').attr('value',$('#input_id').val());
値をhtmlに入れます

于 2012-08-25T23:38:15.420 に答える
0

DanCZ & Musa ソリューションはかなりうまく機能しますが、テキストエリアに問題がありました。

これをTypescriptプロジェクトに実装する必要があり、テキストエリアに値を表示するために見つけた唯一の方法は次のとおりです。

textarea.innerHTML = textarea.value;
于 2020-06-08T12:53:02.700 に答える