javascriptで、クリックすると値が変わるというものを作っています。
クリックすると以下の処理を行います。
●java script側●
form1.hoge.value = 1;
すると、HTMLのhogeの値が変わるというものです。
●HTML側●
<form name='form1'>
<input size='10' type='text' name='hoge' value='0'>
</form>
しかし、実際には、phpの処理の都合もありまして
●java script側●
form1.hoge[].value = 1;
●HTML側●
<form name='form1'>
<input size='10' type='text' name='hoge[]' value='0'>
</form>
と、カッコ[]をつけたいのですが、カッコをつけると
javascriptが、エラーになってしまい、うまく動作しません。
エスケープの問題かなと思い form1.hoge\[\].value 等
試しましたが、うまくいきません。
どうすれば、カッコのついたnameに対して、
javascriptが、要求を送ることができるのでしょうか?
No.2
- 回答日時:
結局nameのような型がいい加減なものをつかうと処理が煩雑になると
いうことです。
たとえばnameは性質上ユニークである必要はないためhoge[]が
複数存在する場合も考えられます(とくにhoge[]のような
配列渡しをするばあいなどは)
こんな風な処理をいれるとよいかもしれません。
<script>
function hoge(){
var f=document.getElementById('form1');
var nodes=f.elements['hoge[]'];
if(nodes.length){
for(var i=0;i<nodes.length;i++){
nodes[i].value=1;
}
}else{
nodes.value=1;
}
}
</script>
<form id='form1'>
<input size='10' type='text' name='hoge[]' value='0'>
<input size='10' type='text' name='hoge[]' value='0'>
</form>
<input type="button" value="test" onclick="hoge()">
No.3
- 回答日時:
ifでnameプロパティを判定すればいいんじゃないでしょうか?
下記コードで正常動作することを確認しました。
------
<form name='form1'>
<input size='10' type='text' name='hoge[]' value='0'>
</form>
<script type='text/javascript'>
var input = document.form1.getElementsByTagName('input'), target;
for(var i=0,max=input.length; i<max; i++){
if(input[i].name == 'hoge[]'){
target= input[i];
}
target.value='match!'
}
</script>
------
JavaScript DOMで関連資料が見つかります。
No.4ベストアンサー
- 回答日時:
昔からある方法
document.form1.elements['hoge[]'][0].value=1;
DOMを使って
var elms=document.getElementsByName('hoge[]');
elms[0].setAttribute('value', '1');
他の方法
<input name="hoge1">
<input name="hoge2">
としておいて、
JavaScriptは document.form1.hoge1.value=1;
PHPを書き換える。
// $_POSTの上書きはおすすめしません。例として。
$_POST['hoge']=array($_POST['hoge1'], $_POST['hoge2']);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ひ孫に当たるiframe から親ウイ...
-
ASP.NETでNAME属性を固定にしたい
-
GETパラメータの内、空文字のク...
-
javascript name="hoge"等に記...
-
cookie使用時にundefinedと表示...
-
for文の使い方について
-
submit()で送れない
-
OnClickでURL生成し、飛ばしたい
-
リンク先を新しい窓で開くには?
-
name属性の背景に色をつける
-
return trueとreturn falseの用...
-
特定<table>内の<td>の色を変える
-
value内に変数を入れたい
-
確認ダイアログの出し方(JavaS...
-
至急!GetElementById でtdの...
-
HTML中のTABLEのデータを抽出す...
-
XMLHttpRequestを利用してPHPへ...
-
innerHTML内では改行は禁止?
-
プルダウンで選択すると、DBの...
-
slickのレスポンシブ > center...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
二つの入力欄に、同時に同じ文...
-
新しくフォルダを作成したい
-
name属性のないformタグの、中...
-
入力フォームに半角スペース以...
-
ラジオボタンでクリックした値...
-
ASP.NETでNAME属性を固定にしたい
-
JavaScriptにて動的に配列を作...
-
cookie使用時にundefinedと表示...
-
submitボタン押下時にPOSTされ...
-
Javascriptでのbuttonのname属...
-
エクセル マクロ submitについて
-
jqueryでtextareaのcols、rows...
-
javascriptの値をformのinput h...
-
動的にTabindexの値を変えたい!
-
テキストボックスの入力をリセット
-
ファイル選択ダイアログが表示...
-
現在フォーカスのオブジェクト...
-
ボタンを押すとテキストボック...
-
テキストエリアをenterキーでフ...
おすすめ情報