1

フォームに関する簡単な質問です。Webを検索しましたが、実装したものが機能しない理由がわからないようです。

アイデアは単純です。JSPページ内にフォームがあります。フォームには、いくつかのパラメータを使用して別のjspを開くために定義された「onsubmit」プロパティがあります。フォーム内にはいくつかのボタンがあり、そのうちの1つはJavaScript関数を呼び出し、JavaScript関数は(特定の条件下で)フォームを送信します。

コードは次のとおりです。JSP:

...
<form id='testForm' onsubmit="window.open('another.jsp')">
  <input type="button" onclick="callJsFunction()" />
  ..
</form>

JavaScript:

function callJsFunction() {
  if (launchNow == 1) {
    var form = document.getElementById("testForm");
    form.submit();
  }
}

フォーム定義にtarget="_ blank"を追加すると、新しいウィンドウは開きますが、開きたいjspは開きません。最終的には、フォームで(action属性を使用して)サーブレットアクションを実行してから、新しいjspを開きます。何か案は???

ありがとう!

4

3 に答える 3

1

私が探していたものの解決策はここにあります:フォーム送信のJavascript投稿新しいウィンドウを開きます

target = "_ blank"を設定するのではなく、定義して開いたウィンドウにターゲットを設定できます。サーブレットで、目的のjspにリダイレクトすると、新しいポップアップウィンドウに表示されます。

于 2012-12-27T22:54:20.373 に答える
0
<form id='testForm' action='another.jsp' target='_blank'>
于 2012-12-27T20:34:24.627 に答える
0

私は間違っているかもしれませんが、これはあなたが探しているものですか?

次のリンクで動作するデモを参照してください:http://fiddle.jshell.net/vf6AC/show/light/(jsfiddleでは動作しません)

<form action="http://google.com" id="testForm">
    <input type="submit" />
</form>​

<script type="text/javascript">
var testForm = document.getElementById("testForm");

testForm.onsubmit = function(e){
    window.open("http://stackoverflow.com");

    return true;
};​
</script>

ここでjsfiddleを参照してください:http://jsfiddle.net/vf6AC/

于 2012-12-27T21:30:11.540 に答える