0

これは状況です:

多くの入力フィールドと入力を更新するための「保存」ボタンを備えたインターフェースがあります。保存には、検証、ユーザーの確認、コメントの追加、更新のキャンセルなど、多くのプロセスが含まれます。

このインターフェイスから移動するには、タブをクリックする、別のボタンをクリックする、キーボード ショートカットを押すなど、多くのオプションがあります。

ユーザーが離れようとしたときに予想される動作は、システムが更新されていないフィールドをチェックし、ある場合はユーザーに更新または無視するように要求することです。

ユーザーが「無視」を選択しても問題ありません。ナビゲーションを続行します。

しかし、ユーザーが「更新」を選択すると、システムは現在のナビゲーションを一時停止し、他の多くの手順を含む更新ハンドラーを実行する必要があります。これらの更新手順が正常に完了した後、システムは、一時停止された時点から、一時停止されたインターフェイス ナビゲーション プロセスを続行する必要があります。

サンプルの場合:

//something like this
$('#nxtPage').live("click", function(){
  if (any field value changed){
    var usrConf = confirm('You wanna update?')
    if (usrConf){
      // proceed with the updating processes by calling them
      callDefaultFldUpdate(); // where this function includes many other procedures, so the return status wont help.
    }
  }
  // the default page navigation process starts here
  moveToNextPage();
}

したがって、更新手順の後、システムはナビゲーション手順を続行する必要があります。

状況が明確になり、javascript && jquery を使用してこのロジックを構築するための有益な提案を期待しています。

前もって感謝します。

4

1 に答える 1

0

isChanged = false;次に、関数をバインドして変更イベントを形成するようなグローバル変数を設定します。

$(document).on('change', 'form', function(){
    window.isChanged = true;
}

isChangedたとえば、コード内の変数に対して検証します。

if (any field value changed){と言えるif(isChanged == true){

于 2013-03-14T06:24:57.927 に答える