WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:javascript

0:[投稿] popo [2002/06/07 16:35 ][環境:WIN+IE WIN系+Java]

お疲れ様です。

早速で申し訳ありませんが、ラジオボタンのVALUE値をTEMPLATEのVALUE値に入れたいのですがうまくいきません。どのようにすればjavascriptでラジオのvalue値を取得できるのでしょうか?
因みに、選択して処理開始ボタンを押したときに選択された方の値を取得したいのですが・・・・


例:
<HTML側>
<form name="Form1" method="post" action="xxxx">
<input type="radio" name="R_Menu" value="B_Down" checked>
<input type="radio" name="R_Menu" value="B_Date">
<input type="submit" name="Syori" value="処理開始" OnClick="Goto(this.form);">
<input type="hidden" name="template" >
</form>

<javascript側>

<script LANGUAGE="javascript">
function Goto(frm){
var R_SEN = frm.R_Menu.value;
   if(R_SEN = "B_Doun"){
       var myFormA = document.all('Form1');
       document.Form1.elements["TEMPLATE"].value = "OK";
   }
   if(R_SEN = "B_Date"){
       var myFormA = document.all('Form1');
       document.Form1.elements["TEMPLATE"].value = "NG";
   }
   myFormA.submit();
}
</script>



1:[回答] ナン [2002/06/07 17:33 ]

ラジオボタンはthis.formでなくthisで渡さなくてはいけません。
onclick属性もsubmitでなくradioの方に記述します。


2:[回答] popo [2002/06/07 18:11 ]

ありがとうございます。 ナン様。

ナン様が記入して頂いたやり方は下記の通りですよね。

例:
<HTML側>
<form name="Form1" method="post" action="xxxx">
<input type="radio" name="R_Menu" value="B_Down" checked OnClick="Goto('B_Down');">
<input type="radio" name="R_Menu" value="B_Date" OnClick="Goto('B_Date');">
<input type="submit" name="Syori" value="処理開始" >
<input type="hidden" name="template" >
</form>

<javascript側>

<script LANGUAGE="javascript">
function Goto(frm){
   if(frm = "B_Down"){
      document.Form1.elements["TEMPLATE"].value = "ok";
   }
   if(frm = "B_Date"){
       document.Form1.elements["TEMPLATE"].value = "ng";
   }
}
</script>

で、作ったのですが、うまくTEMPLATEのvalueに値が入りません。どうしてなのかおわかりになりますか?


3:[回答] JTR [2002/06/07 18:13 ]

<html>
<body>
<script LANGUAGE="javascript">
function Goto(parts){
var R_SEN = parts.value;
  if(R_SEN == "B_Down"){
      document.Form1.elements["template"].value = "OK";
  }
  if(R_SEN == "B_Date"){
      var myFormA = document.all('Form1');
      document.Form1.elements["template"].value = "NG";
  }
}
</script>

<form name="Form1" method="post" action="xxxx">
<input type="radio" name="R_Menu" value="B_Down" checked OnClick="Goto(this);">
<input type="radio" name="R_Menu" value="B_Date" OnClick="Goto(this);">
<input type="submit" name="Syori" value="処理開始"">
<input type="hidden" name="template" >
</form>
</body>
</html>


4:[保留] popo [2002/06/07 19:45 ]

ありがとうございました。私も上記の方法で問題ないと思うのですが、なぜかうまくいきません。
多分うまくいってても、ほかに何か見落としがあってうまくいかないのだと思います。
もう少し、調べて見ます。ありがとうございました。


5:[完了] popo [2002/06/07 19:49 ]

すみません。できました。
記入ミスでした。 上記のご回答で、問題ありませんでした。
ありがとうございます。


6:[完了] popo [2002/06/07 19:52 ]

訂正。

return value;
を付け加えたらOKでした。


7:[完了] popo [2002/06/10 10:56 ]

上記のつづきで質問です。

function Goto(para){
   var R_SEN = para.value;
   if(R_SEN == "B_Down"){
       var myFormA = document.all('Form1');
       document.Form1.elements["TEMPLATE"].value = "ok.html";
   }
   if(R_SEN == "B_Date"){
       var myFormA = document.all('Form1');
       document.Form1.elements["TEMPLATE"].value = "w0200.html";
   }
   return false;
}

javascriptは上記のように作成したのですが、HTML側のラジオボタンにcheckedを入れると、画面表示後に処理開始ボタンを押してもtemplateにデータが渡りません。 ただ、ラジオボタンを変更したりすると、templateにデータが渡るのです。
checkedを入れると1アクション起こさないとデータは動かないのでしょうか?


8:[質問] popo [2002/06/10 10:57 ]

上記のつづきで質問です。

function Goto(para){
  var R_SEN = para.value;
  if(R_SEN == "B_Down"){
      var myFormA = document.all('Form1');
      document.Form1.elements["TEMPLATE"].value = "ok.html";
  }
  if(R_SEN == "B_Date"){
      var myFormA = document.all('Form1');
      document.Form1.elements["TEMPLATE"].value = "w0200.html";
  }
  return false;
}

javascriptは上記のように作成したのですが、HTML側のラジオボタンにcheckedを入れると、画面表示後に処理開始ボタンを押してもtemplateにデータが渡りません。 ただ、ラジオボタンを変更したりすると、templateにデータが渡るのです。
checkedを入れると1アクション起こさないとデータは動かないのでしょうか?



9:[回答] ひよこ [2002/06/10 21:49 ]

横やりで申し訳ないですが、私ならこの処理はonsubmitで関数を呼ぶやり方でやります。

<script LANGUAGE="javascript">
function Goto(){
  var R_SEN;
  num = document.Form1.R_Menu.length;
  for(i=0;i<num;i++){
    if(document.Form1.R_Menu[i].checked){
       R_SEN = document.Form1.R_Menu[i].value;
    }
  }
  if(R_SEN == ""){return false;}
  if(R_SEN == "B_Down"){
    document.Form1.template.value = "ok.html";
  }
  if(R_SEN == "B_Date"){
    document.Form1.template.value = "w0200.html";
  }
  return true;
}
</script>

及び

<form name="Form1" method="post" action="xxxx" onsubmit="Goto();">
<input type="radio" name="R_Menu" value="B_Down" checked>
<input type="radio" name="R_Menu" value="B_Date">
<input type="submit" name="Syori" value="処理開始" >
<input type="hidden" name="template" >
</form>


10:[回答] popo [2002/06/11 09:42 ]

ひよこさん。大変ありがとうございました。
問題になっていたところが解決できました。

このソースはとても勉強になりました。
if(document.Form1.R_Menu[i].checked){
上記の条件文の使い方をはじめて使って、なるほど!!と、関心いたしました。と同時に、こんなことができるんだ!!と思いとても参考になりました。


11:[完了] popo [2002/06/11 09:42 ]

完了です。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World