- PR -

JavaScriptのSubmitが出来ない

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-02-26 13:42
いつもお世話になっています。

ASP.NET (VS2002) + C#
でWebシステムを開発していますが、どうしてもわからない
箇所があり知恵を貸してもらえればと思い書き込みをします。

画面を開発しているところでJScriptの中に

function a(){
document.forms[0].submit();
//alert(document.forms[0].name);
}

というような関数を作成しました。
これを画面のアンカータグのonclickイベントにJavaScriptを
記述させて実行させようとしています。
ただ、ここで理解の出来ない動作をするのです。
私の希望の動作としてはforms[0]のSubmitを
してくれば良いのですが、してくれません。
そこでSubmitの下にあるAlertのコメントをはずすと
Submitが動作します。

Submitしたかどうかの判断はC#のOnLoadの一番最初に
ブレークポイントをつけて判断しています。
(Alertでメッセージを表示させると期待通り正しくブレイクされます)

膨大なHTMLのためすべてのソースを載せることができませんが、
この情報で何か解決のヒントをいただけないでしょうか?
(膨大じゃなくてもそのまますべてをのせることはできませんが・・・)

何かご存知の方がいたら教えてください。
よろしくお願いします。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-26 14:42
↓こういうこと、でしょうか?
コード:
<script>
	function funcA(){
		document.forms[0].submit();
		return false;
	}
</script>
<form action="a.htm" >
	<a href="b.htm" onclick="funcA()" >A</a>
	<a href="c.htm" onclick="return funcA()" >B</a>
</form>

冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-02-26 14:45
.Netは全然知らないので外してるかもしれませんが、まず、
コード:
Submitしたかどうかの判断はC#のOnLoadの一番最初に 
ブレークポイントをつけて判断しています。 
(Alertでメッセージを表示させると期待通り正しくブレイクされます) 


これ、本当に「submitしてない」のでしょうか?
(IDEの仕様上(?)、止まらないというだけではなくて?)
IDE上からではなくて、生で動かしてみてどうでしょう?

あと、考えられるのは上のスクリプトをonSubmitイベントと絡ませている場合、trueをリターンしてやらないとsubmitがキャンセルされます。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-02-26 14:55
引用:

Heさんの書き込み (2004-02-26 14:42) より:
↓こういうこと、でしょうか?
コード:
<script>
	function funcA(){
		document.forms[0].submit();
		return false;
	}
</script>
<form action="a.htm" >
	<a href="b.htm" onclick="funcA()" >A</a>
	<a href="c.htm" onclick="return funcA()" >B</a>
</form>





aタグの使い方だけが違っています。
↓の書き方のように書いています。
<a href="javascript:void(0)" onclick="javascript:a()">test</a>
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-02-26 15:01
引用:

冬寂さんの書き込み (2004-02-26 14:45) より:
.Netは全然知らないので外してるかもしれませんが、まず、
コード:
Submitしたかどうかの判断はC#のOnLoadの一番最初に 
ブレークポイントをつけて判断しています。 
(Alertでメッセージを表示させると期待通り正しくブレイクされます) 


これ、本当に「submitしてない」のでしょうか?
(IDEの仕様上(?)、止まらないというだけではなくて?)
IDE上からではなくて、生で動かしてみてどうでしょう?


生ではまだ動作させてないので、検証もしれしていました。
ご指摘ありがとうございます。
ただ、Submitはしていると思います。
理由としてはASP.NETのPostBackの中でブレイクさせているため
SubmitしてないとAlertさせたときにブレイクでとまらないと
認識しています。
#間違っていたら突っ込みお願いします

引用:

あと、考えられるのは上のスクリプトをonSubmitイベントと絡ませている場合、trueをリターンしてやらないとsubmitがキャンセルされます。



onSubmitは使ってないです。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-02-26 15:10
引用:

msoさんの書き込み (2004-02-26 14:55) より:
<a href="javascript:void(0)" onclick="javascript:a()">test</a>


<a href="#" 〜
でやってみてください。
なんでかは・・・分からないです
_________________
まゆりん @ わんくま同盟
Blog る。
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-02-26 15:11
引用:

<a href="javascript:void(0)" onclick="javascript:a()">test</a>



コード:
<a href="javascript:void(0)" onclick="javascript:a(); return false;">test</a>



これでいかがでしょうか?
ちょろっと試してみた感じ、OnClickをreturn falseでキャンセルしてあげないと、中で呼んだSubmit()が実行されるまでにhref="javascript:void(0)"の方にUAが浮気してしまうような動作をしましたので……。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-26 15:18
↓以下が、おかしいような気がします。
引用:

msoさんの書き込み (2004-02-26 14:55) より:
<a href="javascript:void(0)" onclick="javascript:a()">test</a>


スキルアップ/キャリアアップ(JOB@IT)