5

jquery FormWizardを使用しており、フォームを送信して次の画面に移動する方法として、最後の画面で送信ボタンを使用したいと考えています。

問題は、この jquery スクリプトを Java コードに埋め込んでいることです。現在、jqueryフォームウィザードから「送信」ボタンがあり、Javaコードから「続行」ボタンがあります。したがって、ユーザーは「送信」を押してフォームを送信し、「続行」を押して次の画面に進みます。ユーザーにとって理想的な状況ではありません。

送信を押さずに「続行」を使用すると、フォームの情報は保存されません。「送信」を押してから「続行」を押すと、フォームのすべての情報がデータベースに保存されます。続行ボタンを送信として使用し、次の画面に進むにはどうすればよいですか。これにより、最後の画面で送信ボタンが必要なくなります。

Script sc = new Script();
sc.add("$(function(){$('#formScreenQuestions').formwizard({formPluginEnabled: true,validationEnabled: true,focusFirstInput : true,disableUIStyles : true});});");
HEADER.add(sc); 

Form form = new Form("criteria");
form.set(ID, "formScreenQuestions");
Div dh = new Div();
dh.set(ID, "lastStep");
dh.set(CLASS,"step");
Table vt = new Table();
vt.row();
vt.cell(text("Please press SUBMIT before pressing CONTINUE"));
==== showing some questions with checkboxes to select =====
dh.add(vt);
Div db = new Div();
db.set(ID,"navigation");
Table bt = new Table();
bt.row();
bt.cell("<input type='reset',id='back',value='Back' />");
bt.cell("<input type='submit',id='next',value='Next' />");      
db.add(bt); 

form.add(dv);
form.add(db);
4

7 に答える 7

4

フォームに「送信時」イベントを追加できます。

http://api.jquery.com/submit/

于 2013-02-13T23:48:06.367 に答える
3

送信に問題がなければ、サーバー側で次のページにリダイレクトします。

また

送信コールバックで $("#continueButton").click(); を作成します。

于 2013-02-14T05:56:52.500 に答える
1

私が正しく理解していれば、formWizardは、ウィザードを使用してフォームを複数のステップに分割するのに役立ちます。
ボタンが次にクリックされるたびにトリガーされるため、ボタンをクリックするだけではバインドできません。

あなたがすべきことは、formWizardからこのイベントを使用することです。そうすれば、使用しているプラ​​グインの機能をオーバーライドしないので、複雑さを増すことはありません。

$( "#demoForm")。bind( "after_remote_ajax"、function(event、data){
    if(event.success && event.currentStep === finalStep){
        windows.location.href="注意すべきURL";
    }
});
于 2013-02-16T15:59:30.063 に答える
1

おそらく最善の方法は、jQuery の submit イベントを使用し、AJAX を使用してサーバーに送信することです。

$("#form-name").submit(function(){
  $.post("submit-path", function(result){
   // do something with result
  });
  return false;
});
于 2013-02-15T16:20:15.440 に答える
0

JQueryを使用している場合-PowerofAJAXを使用して、ユーザーエクスペリエンスを向上させてみませんか-

[続行]ボタンでjQueryイベントを定義します。

  $("#continue-button").click(function(){
           windows.location.href="URL to be forwared to";
    }): 

送信ボタンをクリックしてAJAXリクエストを送信します(jqueryのAJAXメソッドのドキュメントを見て処理アイコンを表示する方法があります)

AJAXリクエスト:

$.ajax({
    url : actionURL,
    dataType : <your dataType>,
    contentType : <your Content Type>,
    type : 'post',
    data : <bla bla>,
    success : function(data) {
        //Show Continue button              
    }
    });
};
于 2013-02-15T19:57:03.300 に答える
0

これは設計上の問題だと思います。各ステップ間でデータが保存されるマルチステップフォームを作成しようとしている場合は、フォームのすべてのステップに送信ボタンがあり、サーバーにデータを送信し、入力された非表示の値を使用してステップを追跡してから送信する必要がありますクライアントへのフォームの次の部分。javascriptがクライアント側で有効になっていない場合でもフォームが機能するため、より安全です。このような設計では、プロセスを後で改善してAJAX機能を追加することができます。

各ステップ間でデータを送信する必要がない場合は、クライアントの場所に応じて表示または非表示になるサブフォームごとに、ある種のパネルを使用して単一のフォームを実行できます。

于 2013-03-07T12:23:34.217 に答える
0

jquery フォームで続行ボタンを使用し、Java から送信ボタンを削除した方がよいでしょうか?

$(function(){
    // bind a callback to the before_step_shown event
    $("#demoForm").bind("before_step_shown", function(event, data){
            if(!data.isBackNavigation){
            doSubmit();
            }

    });
});
于 2013-03-01T11:35:59.137 に答える