プロが教える店舗&オフィスのセキュリティ対策術

jQueryにてformの中を書き換えました。

具体的には、

$.ajax({
url: "add.php",
type: "get",
dataType: "html",
timeout: 10000,
cache: false,
data: {
"name" : "test",
},
success: function(html){
$("#list").html(html);
}
});

を実行し、結果を #list に置き換えています。
結果は、

<input name='item_name' value='1' id='item_name_1' type='radio'>
<label for='item_name_1'>ほげほげ</label>

となっています。
しかし、Postをしてみると、item_name が取得することができず NULL として帰ってきます…。。

ajaxで書き換えたformから値を取得したいです。

A 回答 (2件)

No.1の回答無視して下さい。



jQueryはもっとおりこうのはずです。
dataType: "html" で返される形式はTEXTでした。
XMLやXHTMLじゃありません。

$.html(html)
で生成されるjQueryオブジェクトはimportNodeする必要は無い
はずです。

よって、原因は他にあると思います。

この回答への補足

解決しました。
完全に思い違いでした。。

.html

で動作するようになりました。。
なぜ動くようになったのか不明ですが…。

補足日時:2010/09/16 17:48
    • good
    • 0

jQueryでどうなのか詳しく見てませんが、



HTMLで取得しているので、フォームの中身を
$("#list").html(html);
で変更するのは、だめなんじゃないかと....

「Node は必ず、自分を生成してくれた 1 個の Document と結び付いています。」

jQueryでやるなら、

$("#list").replaceWith(html)

とか、#listがformのどこにあるのか解らんけど、

parent=$("#list").parent().get(0);
parent.detach("#list");
parent.append(html);
あるいは、
next=$("#list").next().get(0);
parent.detach("#list");
$(html).insertBefore(next);
とか、

この回答への補足

#list
は、

<div id="list">
<input name='item_name' value='1' id='item_name_1' type='radio'>
<label for='item_name_1'>ほげほげ</label>
</div>

となっております。
yyr446 さんのを参考に修正してみましたが、
formからのデータはnullでした。

nullといいますか、item_nameという要素自体がpostされていないようです。。

補足日時:2010/09/16 13:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!