街中で見かけて「グッときた人」の思い出

formタグのvalue="" に代入される文字列をsubmitボタンが押されたときに
Javascriptでlocation.hrefで現在のURLを判定して
条件分岐してformタグのvalue="" に "A" や "B" といった
文字列を代入したいと考えてます。

現在下記のタグを書いているのですが、submitボタンが押されたときに
パラメータにvalueの値が代入されず、困ってます。。。

タグの記述に間違いがあると思うのですが、ご指摘いただけないでしょうか?

■現在のタグ
1.Javascript側

<script>
<!--
function check() {
if(location.href.startsWith('http://www.AAA.com/AAA/')){
document.exp.categoryII.value = "A";
}else if(location.href.startsWith('http://www.AAA.com/BBB/')){
document.exp.categoryII.value = "B";
}
return true;
}
// -->
</script>

2.formタグ側
<form onsubmit="return check()" name="exp" action="">
<input name="gen" value="6" type="hidden" />
<input name="categoryII" value="" type="hidden" />
<input name="button" value="検索" type="submit" />
</form>

よろしくお願い致します。

A 回答 (2件)

> if(location.href.startsWith('

http://www.AAA.com/AAA/')){

あれ?「startsWith」っていう関数はJavaScriptにありました?
if (location.href.indexOf('http://www.AAA.com/AAA/') == 0) {

> document.exp.categoryII.value = "A";

"exp"というformの名前がまずいと思います。Math.exp関数と名前が被っていますので。
"exp1"とかに変えて試してください。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございました。
さらに、Math.exp関数と名前が被っているのは知りませんでした。。。

ご回答ありがとうございます。

お礼日時:2010/07/18 10:38

フォームの送信を停止していません(onsubmitでreturn falseしていない)から、ページを再読み込みしてるんじゃないでしょうか。

    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。
return false しなくてもとりあえず動くようです。。
ほんとうは、return false の処理も入れないとだめなんでしょうね。。。

ご回答ありがとうございました。

お礼日時:2010/07/18 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!