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.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']);
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.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()">
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
javascriptの値をformのinput h...
-
name属性のないformタグの、中...
-
Javascriptでのbuttonのname属...
-
テキストエリアをenterキーでフ...
-
cookie使用時にundefinedと表示...
-
新しくフォルダを作成したい
-
hiddenを動的に作成したい
-
focusについて
-
ラジオボタンでクリックした値...
-
ひ孫に当たるiframe から親ウイ...
-
ASP.NETでNAME属性を固定にしたい
-
tabindex値の設定
-
onchangeイベントを強制的に発...
-
プルダウン選択を変更すると、...
-
return trueとreturn falseの用...
-
チェックボックスのON/OFFでVal...
-
<JavaScript>tableタグを入力不...
-
Selectボックスの一覧表示方法
-
select要素のvalueを配列で取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
javascriptの値をformのinput h...
-
新しくフォルダを作成したい
-
Javascriptでのbuttonのname属...
-
ファイル選択ダイアログが表示...
-
出発駅A、到着駅Bを選択すると...
-
テキストボックスの入力をリセット
-
JavaScriptにて動的に配列を作...
-
submitボタン押下時にPOSTされ...
-
ボタンを押すとテキストボック...
-
ラジオボタンでクリックした値...
-
二つの入力欄に、同時に同じ文...
-
テキストボックスの値同士を比...
-
name属性のないformタグの、中...
-
ASP.NETでNAME属性を固定にしたい
-
複数のテキストフィールドを同...
-
フォームの一部をPOSTで送信で...
-
テキストエリアをenterキーでフ...
-
動的にTabindexの値を変えたい!
-
GETパラメータの内、空文字のク...
おすすめ情報