
何度も呼ばれるfunction(testfunc)があり、ここではparamaterというフィールドがあればそこに値を設定し、なければparamaterというhiddenフィールドを作成し、そのフィールドに値を作成。
その後、Ajax.Requestを使用して値をサーバに渡したいです。
下記のように作成しましたが、createhidden実行後もformobj.paramaterはundefinedになってしまいます。
ただ、実際は作成されているようで、サーバーには最初に設定した値が何度も飛んできている状態です。(同じnameのhiddenがたくさんできている状態?)
特にこの方法にこだわる事はないので、もっといい方法があればそれでも構いません。(post時に別のやり方?で値を渡すなど)
尚、最初からhtmlにhiddenを書いておくというのは無しでお願い致します。
function testfunc (value) {
formobj = document.forms[0];
if (formobj.paramater) {
formobj.paramater.value = value;
} else {
createhidden('paramater', value, formobj);
}
new Ajax.Request('./Suggest.do', {
// 正しく補完情報を取得できた場合
onSuccess: aaaa,
onFailure: bbbb,
postBody: Form.serialize(formobj),
asynchronous: true,
method: 'post'
});
}
function createhidden( name, value, form ){
var elm = document.createElement('input');
elm.type = 'hidden';
elm.name = name;
elm.value = value;
form.appendChild(elm);
}
No.3
- 回答日時:
すでに回答は出ていますが…
name属性で取得できないIEでも、一応、nameは定義できているみたい。ただし、要素の取得にそのname属性が利用できないようだ。
要素を取得して、「element.name」を見るとparamaterが返ってくるし、送信時もちゃんとparamaterとして送られるようだ。
単純に formobj.paramater だとundifinedになっちゃうけれど、以下のような方法にすれば確認も可能です。
(IE6のみ。7、8については未確認)
var flg = false, c = document.forms[0].firstChild;
while (c) {
if (c.name == 'paramater') { flg = true; break; }
c = c.nextSibling;
}
*ところで「parameter」だとばかり思い込んでいたので、全然取得できなくて??状態だったんだけど、よく見たら「paramater」ってなってた…
回答遅れて申し訳ございません
名前での確認方法ありがとうございます
勉強になります
paramaterはparameterのスペルミスですね。。。
恥ずかしい。。。
No.1
- 回答日時:
IEではform関連要素のname属性は動的に変えられない仕様になっています。
要素作成時に限れば、こういうこんな感じにname属性を付けられます。
var elm = document.createElement('<input name="' + name + '">');
ただし、他のブラウザではこの記述が無効なので分岐します。
var elm = document.createElement(/*@cc_on'<' + @*/'input'/*@cc_on + ' name="' + name + '">'@*/);
他の部分は動いていると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jquery.validate.jsについて
-
二つの入力欄に、同時に同じ文...
-
新しくフォルダを作成したい
-
埋め込みswfのサムネイル画像表...
-
ラジオボタンでクリックした値...
-
テキストボックスの値同士を比...
-
VBscript で複数テキストがある...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
特定<table>内の<td>の色を変える
-
selectを変更不可にしたい
-
ラジオボタンが選択されたらテ...
-
プルダウンで選択すると、DBの...
-
onclickをEnterキーでも行いたい
-
onchangeイベントを強制的に発...
-
チェックボックスのON/OFFでVal...
-
【javascript・PHP】プルダウン...
-
チェックボックス付きのテーブ...
-
データベースからのarray を j...
-
slickのレスポンシブ > center...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
二つの入力欄に、同時に同じ文...
-
新しくフォルダを作成したい
-
JavaScriptにて動的に配列を作...
-
ラジオボタンでクリックした値...
-
テキストボックスの値同士を比...
-
Javascriptでのbuttonのname属...
-
HTMLのフォーム名とJavaScript...
-
動的にTabindexの値を変えたい!
-
入力フォームに半角スペース以...
-
エクセル マクロ submitについて
-
ASP.NETでNAME属性を固定にしたい
-
CodeStudyの問題が解りません!
-
JavaScript から I'm Feeling L...
-
iframe内のnameへ移動し、そこ...
-
Evalの正しいソースを教えてく...
-
ボタンを押すとテキストボック...
-
Cookieへの書き込みは出来たの...
-
name属性のないformタグの、中...
-
テキストボックスの入力をリセット
おすすめ情報