0

ajax を介してフォーム データを送信するには、次の 2 つの方法があります。

  1. クエリ文字列を手動で作成し、ajax投稿データとして渡しました。例えば

    $.ajax(function(){
        type: 'post',
        data:"val1="+$("#input1").val()+"&val2="+$("#input1").val(),
        .....
    });
    
  2. たとえば、 $('#myForm').serialize() メソッドを使用します

    $.ajax(function(){       
        type: 'post',
        data:$("#myForm").serialize(),
        .....
    });
    

これら 2 つの方法でフォーム データを送信する際の主な違いは何ですか。

4

5 に答える 5

3

Serialize はデータを urlencode します。さらに、すべてのフォーム要素を反復処理します。クエリ文字列を手動で作成するには、これを手動で行う必要があります。その良いショートカット:)

于 2012-07-13T05:32:24.783 に答える
2

Jquery serialize()メソッドは、標準の URL エンコード表記でテキスト文字列を作成します。このリンクはあなたのために働くかもしれません。

于 2012-07-22T11:38:32.597 に答える
1

主な違いは、 $("#myForm").serialize() がシンボルをエスケープすることです。URLをエンコードします

于 2012-07-13T05:35:37.930 に答える
0

.serialize() メソッドは、標準の URL エンコード表記でテキスト文字列を作成します。一連のフォーム要素を表す jQuery オブジェクトで動作します。フォーム要素にはいくつかのタイプがあります。

<form>
<div><input type="text" name="a" value="1" id="a" /></div>
<div><input type="text" name="b" value="2" id="b" /></div>
<div><input type="hidden" name="c" value="3" id="c" /></div>
<div>
<textarea name="d" rows="8" cols="40">4</textarea>
</div>
<div><select name="e">
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></div>
<div>
<input type="checkbox" name="f" value="8" id="f" />
</div>
<div>
<input type="submit" name="g" value="Submit" id="g" />
</div>
</form>

.serialize() メソッドは、 、 、 などの個々のフォーム要素を選択した jQuery オブジェクトに作用できます。ただし、通常は、シリアル化のためにタグ自体を選択する方が簡単です。

$('form').submit(function() {
alert($(this).serialize());
return false;
});

これにより、標準的なクエリ文字列が生成されます。

a=1&b=2&c=3&d=4&e=5
于 2012-07-13T05:44:15.427 に答える
-1

彼らは本質的に同じことをします。 $("#myForm").serialize()少しきれいで、名前が変更された場合、たとえば<input type="text" name="val" value="1" id="a" />変更された<input type="text" name="val2" value="1" id="a" />場合、それが選択され、データフィールドが「val2 = 1」になることがわかっています。ただし、手動の文字列構築を使用している場合は、「val=1」のままです。それほど違いはありません。フォームを検証する場合は、最初のオプションの方が適している場合があります。

于 2012-07-13T05:40:01.843 に答える