何度も呼ばれる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で質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
動的にTabindexの値を変えたい!
-
二つの入力欄に、同時に同じ文...
-
javascriptの値をformのinput h...
-
JavaScript から I'm Feeling L...
-
GETパラメータの内、空文字のク...
-
ボタンを押すとテキストボック...
-
現在フォーカスのオブジェクト...
-
テキストボックスの値同士を比...
-
新しくフォルダを作成したい
-
ASP.net MVC4のデータ更新について
-
ふりがな自動入力で姓名を分け...
-
Formの「action」属性を取得し...
-
時間の比較は可能でしょうか?
-
cookie使用時にundefinedと表示...
-
Form内の画像ボタンによって、...
-
JavaScriptにて動的に配列を作...
-
ラジオボタンでクリックした値...
-
firefoxでのフォーカス位置の取得
-
テキストボックスの入力をリセット
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
javascriptの値をformのinput h...
-
Javascriptでのbuttonのname属...
-
新しくフォルダを作成したい
-
submitボタン押下時にPOSTされ...
-
JavaScriptにて動的に配列を作...
-
テキストボックスの入力をリセット
-
ラジオボタンでクリックした値...
-
jqueryでtextareaのcols、rows...
-
二つの入力欄に、同時に同じ文...
-
テキストボックスの値同士を比...
-
出発駅A、到着駅Bを選択すると...
-
ボタンを押すとテキストボック...
-
name属性のないformタグの、中...
-
フォームの一部をPOSTで送信で...
-
ファイル選択ダイアログが表示...
-
ASP.NETでNAME属性を固定にしたい
-
cookie使用時にundefinedと表示...
-
動的にTabindexの値を変えたい!
-
テキストエリアをenterキーでフ...
おすすめ情報