inputで取得したデータを加工して代入する方法

[新着] Webテンプレートを仮オープンしました



0   名前: くろねこ : 2006/11/19(日) 15:49  ID:F7pK.jGR
javascriptのサンプルを弄ってた程度しかなく初心的な内容になってしまうのですが
思ったようにscriptが旨く動かなくて困ってます。
根本的にscript部分が全く間違ってるのだと思いますが、様々なページを見たり調べたり
サンプルを探しても見つからずでした…

内容的には

inputに数を入力して、3つのボタンを押すと3つのフレーム(フレーム名:frame1・frame2・frame3)に
「入力したページ」「1つ先のページ」「2つ先のページ」が表示される
※ページはURLの最後に付く数字によって変わります。


<script Language="JavaScript">
<!--
function page()
{
page1 = document.xForm.page.value;
page2 = page1;
page3 = page1;

{page2 += 1;}
{page3 += 2;}
}
-->
</script>
<body onLoad="page()">
<form name=xForm>
<input type="text" size="5" name="page" value="1">

<input type="button" name="a" value="ページ1" onClick="top.frame1.location.href = 'http://www.〜page='+ this.form.page1.value +''; ">
<input type="button" name="b" value="ページ2" onClick="top.frame2.location.href = 'http://www.〜page='+ this.form.page2.value +''; ">
<input type="button" name="c" value="ページ3" onClick="top.frame3.location.href = 'http://www.〜page='+ this.form.page3.value +''; ">

</form>

1   名前: 匿名 : 2006/11/19(日) 15:49  ID:Tv3SVOHh
<input type="button" name="a" value="ページ1" onClick="top.frame1.location.href = 'http://www.〜page='+ document.all('page').value +''; ">

ってことですか?

> 思ったようにscriptが旨く動かなくて困ってます。
どのように動いて欲しくて現状どのような状態かを説明しないと誰も答えられませんよ。

2   名前: m035 ◆Wpzr1YKOiq : 2006/11/19(日) 15:49  [URL]  ID:9o8XG4Ne
this.form.page1.value
this.form.page2.value
this.form.page3.value

は変数を使いたいということでは?
つまり、それぞれ
page1
page2
page3

に変更すればおそらくは。

3   名前: くろねこ : 2006/11/19(日) 15:49  ID:F7pK.jGR
匿名様、m035様、ご解答下さってありがとうございます。

>inputに数を入力して、3つのボタンを押すと3つのフレーム(フレーム名:frame1・frame2・frame3)に
>「入力したページ」「1つ先のページ」「2つ先のページ」が表示される
>※ページはURLの最後に付く数字によって変わります。

上記の部分がやりたい動作のつもりだったのですが、言葉足らず・説明べたで申し訳ありません。
解らない部分を自分なりにシンプルに書くと

input text部分で入力された数字を A として
Aを、変数page1に代入
Aに1足した数を 変数page2に代入
Aに2足した数を 変数page3に代入
ボタン(ページ1・ページ2・ページ3)を押すと、別フレーム(フレーム名:frame1・frame2・frame3)に
下記の形のURLを表示させたいです。

http://www.〜page=(変数page1)
http://www.〜page=(変数page2)
http://www.〜page=(変数page3)


こんな感じなのですが、伝わりますでしょうか?

自分でも続けて調べて勉強しながら試しておりますが、思うように動かない状態です。
アドバイス頂ける部分があれば再度、宜しくお願い致します。

4   名前: m035 ◆Wpzr1YKOiq : 2006/11/19(日) 15:49  [URL]  ID:9o8XG4Ne
page()をonclickで実行してからlocation.hrefを設定しなければ、変数page1〜3の内容はonload時から更新されません。
<input type="button" name="a" value="ページ1" onClick="page();top.frame1.location.href = 'http://www.〜page='+page1; ">


余談ですが、languageよりはtypeで<script type="text/javascript">と指定した方がよろしいかと。

5   名前: くろねこ : 2006/11/19(日) 15:49  ID:F7pK.jGR
m035様に書いて頂いたソースでもう一歩の所まで来たのですが、最後の最後でまた詰まってしまいました。

input textに入力された数字は 変数page1 に正常に取得できているのですが

変数page2 に 変数page1を代入して 1を足して URLの後ろに付けると

http://www.〜page=11


変数page3 に 変数page1を代入して 2を足して URLの後ろに付けると

http://www.〜page=12


となってしまい欲しい答えになりません;(欲しい答えは 2 と 3 なのですが)

変数で扱うデータを 数 というように指定する必要or命令的な物があるのかなと思い探してはいるのですが
一向に見つかりません。下記scriptでたりない部分があれば教えて頂けませんでしょうか?

<script type="text/javascript">
<!--
function page()
{
page1 = document.xForm.page.value;
page2 = page1;
page3 = page1;

{page2 += 1;}
{page3 += 2;}
}
-->
</script>


6   名前: m035 ◆Wpzr1YKOiq : 2006/11/19(日) 15:49  [URL]  ID:9o8XG4Ne
page1=parseInt(document.xForm.page.value);

page1=document.xForm.page.value-0;
で数値化できます。

7   名前: くろねこ : 2006/11/19(日) 15:49  ID:F7pK.jGR
page1=document.xForm.page.value-0;


m035さんに教えてもらった上記の方法で解決できました。有難う御座いました。

出して頂いたソースから検索すると他にも多数のやりかた?(eval・parseFloat)があるようで
自分の探し方が悪かったようでお恥ずかしいです。

一覧へ戻る