2016-06-22 5 views
0

「削除」イベントをトリガーするボタンがあります。このイベントは、ユーザーが続行することを決定した場合に、ストアドプロシージャを介してdbエントリを更新します。ただし、ユーザーは場所を閉鎖としてマークすることしかできません(元に戻すことはできません)。場所のデフォルト値は、open(およびストアドプロシージャのvarchar(1)と同じ '1')の場合はstring status = "1"として宣言されます。ステータスが「0」の場合、ロケーションが閉じていることを意味します。onclickイベントの値をコントローラに渡す

私の質問は...更新プログラムを処理するコントローラの変更がイベントに反映されるようにするにはどうすればよいですか?変数が文字列として宣言されることは重要ですか?

ボタン:

<button type="submit" name="RemoveAccount" id="RemoveAccount" onclick="Confirm_delete()" value="@Model.Location.status">Remove</button> 

JS:

function Confirm_delete() 
{ 
    return confirm('Are you sure you want to remove this entry?'); 
}; 
+0

jqueryダイアログを使用し、ajaxを使用してコントローラを呼び出すことができます。このリンクをチェックしてください。http://stackoverflow.com/questions/17554389/how-do-call-an-jquery-ajax-function-on-jquery-ui-dialog -button-call –

+0

あなたは何を求めていますか? 'Confirm_delete'を変更して、ボタンの' value'を考慮に入れますか? –

+0

さて、ユーザーが削除を続行する場合、値を「0」に変更します。そうでない場合は、デフォルトの "1"のままにしておきます。 – julianc

答えて

1

ちょうどあなたの機能にifを追加します。

function Confirm_delete(el) { 
    if (el.value === '1') { 
     el.value = '0'; 
     return confirm('Are you sure you want to remove this entry?'); 
    } 
    return false; 
} 

@Alexはコメントで述べたように、onclickに変更できますかreturn Confirm_delete(this)。また、ボタンへの参照を取得したいことを明確にするために、thisを引数として追加しました。

あなたが持っているボタンはtype="submit"なので、ボタンはフォームを送信する必要があることに注意してください。これによりサーバーが関与します。モデルを正しくマッピングした場合は、ページが再表示されるまでに@Model.Location.statusの値が「0」に変更されます。

関連する問題