1

form のPOSTメソッドで問題に直面しています。POSTメソッドを含むフォームを含むページ A があり、フォームを送信するとページ b に移動します。

今の問題は、更新を行うと、来たくないアラートがポップアップすることです。HTMLとJavascriptを使用しています。

この更新を処理する方法はありますか?

私が考えることができる1つの方法は、フィールドに値が入力されたページbに非表示のフォームを動的に作成し、更新するたびにその非表示のフォームを送信することです。

他にきちんとした回避策があるかどうかを提案して教えてください。前もって感謝します!基本的に、AS400 プラットフォームで CGIDEV2 を使用しています。したがって、ページ a の入力フォームが送信されると、ページ b を書き込む abc.pgm が呼び出されます。Cgidev2 は html をセクションに書き込みます。/TOP セクションに続いて /REFRESHFORM を書き込みます。これらの値は abc.pgm に取り込まれます。

PAGE a
    /FORM
        <form name="input" action="abc.pgm" method="POST">
    Username: <input type="text" name="user"><input type="submit" value="Submit"></form>
Page b 
    /TOP
    -----------------
    -------------- 
    /REFRESHFORM
    <form name="refreshinput" action="abc.pgm" method="POST">
    Username: <input type="text" name="user"><input type="submit" value="Submit"></form>
4

3 に答える 3

1

「フォームの再送信の確認」アラートを回避しようとしていますか? これを行う通常の方法は、POST/Redirect/GETパターンを使用することです。ページ A はフォームをサーバーに POST し、サーバーはデータを処理してから 3xx リダイレクトをユーザーに発行し、ページ B の GET 要求をトリガーします。したがって、ページ B のその後のリロードは、通常の訓練、つまり警告メッセージはありません。

于 2012-09-22T15:15:00.617 に答える
0

送信ボタンにクリックイベントハンドラーを使用する場合は、クリック時のデフォルトのアクションを防ぐ必要があります。

$('#Submit').click(function(e){
  e.preventDefault();
  // submit the form using ajax
  // on success go to the page B
  ...
}
于 2012-09-22T14:25:20.227 に答える
0

この問題を回避する簡単な方法はありませんが、フォームの代わりに XMLHttpRequest オブジェクトを使用してみてください。いくつかの JavaScript コードを記述する必要がありますが、サーバー コードは変更せずに残ります。

次のドキュメントを参照してください。

<!DOCTYPE html>
<html>
<head>
<script>
function Submit()
{
var form = document.getElementById("data-form");
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    form.innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","abc.pgm",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("userName=" + form["userName"].value + "&userPass=" + form["userPass"].value);
}
</script>
</head>
<body>

<form id="data-form">
    Username: <input type="text" name="userName">
    Userpass: <input type="text" name="userPass">
    <input id="submit" onclick="Submit()" type="button" value="Submit">
</form>

</body>
</html>
于 2012-09-22T16:08:16.457 に答える