-2

私はフォームのあるウェブサイトを持っています。フォームには、ユーザーがデータを入力します。たとえば、ユーザーに表示します。

 <input type='text' value="" name="dsa" />

そして、彼はそれを「3」の値で埋めます。

そして、「保存」ボタンをクリックします。今、フィールドの値を含む Web サイトの HTML 全体が必要です。だから私は使用します:

document.documentElement.innerHTML

しかし、私は得る:

 <input type='text' value="" name="dsa" />

しかし、私はこれを取得したい:

 <input type='text' value="3" name="dsa" />

通知 1 つのフィールドだけでなく、Web サイトの HTML 全体を取得したい。Web サイトにどのフィールドが表示されるかわからないので、一般的な解決策が必要です。

4

3 に答える 3

2

ユーザーが入力テキストフィールドに何かを入力してもHTMLコードは変更されないため、HTMLコードからこれを取得することはできません。

あなたができることは、ページ上のすべての入力フィールドを取得し、次のようなものでそれらの値を取得することです。

var inputs, index;

inputs = document.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
    // deal with inputs[index] element.
}

コードはこの投稿からのものです:https ://stackoverflow.com/a/2214077/312312 私は怠惰すぎて自分自身を書き留めることができませんでした:P

于 2012-07-24T13:48:11.037 に答える
1

jQueryで私は

$(function() {
    $('input').keyup(function() {
       $(this).attr('value', $(this).val());
    }); 

});​

キーアップ後に値属性が設定されていないため

于 2012-07-24T13:52:53.593 に答える
-1

ドキュメント全体にライブイベントを設定して、ユーザーが設定した値を使用してhtmlに属性を設定したり、送信時に値を設定したりすることができます。

たとえば最初の方法

$("body").on("change", "select,input,textarea", function(){
  $(this).attr("value", $(this).val());
});

しかし、これは盲目的に行われるべきではなく、リセットで問題が発生します。また、値だけでなく、選択したラジオ、チェックボックス、その他の属性の問題を解決する必要があります。

2番目の方法は、本当に必要なときにページ全体をシリアル化することです。

var serialize = function(el){
   $("select, input, textarea").each(function(){
     $(this).attr("value", $(this).val()); //the same way as upper
   });
}
$(".serialize").click(function(){
  var inner = $("body"),
      html;
  serialize(inner);
  html = inner.html(); //here you will get whole html with setted attributes
});

不要なイベントの委任がないため、この方法の方が優れているようです。

http://jsfiddle.net/CeAXL/2/-テスト例。

ただし、どちらの場合も、永続的な値をDOM自体に設定することはお勧めできません。

于 2012-07-24T14:07:27.637 に答える