2016-04-12 23 views
0

私はラジオボタンをクリックするとすぐにフォームが提出されるように、私はonclick関数を追加したフォームにラジオボタンを持っています。onclick関数の複数のコマンド

正常に動作しますが、今、私はonclickの関数の中で2番目のコマンドを追加したい
<td>@Html.RadioButtonFor(m => m.SelectedTeacher, Model.ListofTeacher[i].ID, new { @onclick = "javascript: this.form.submit();"})</td> 

フォームの[例]を変更する必要があります。

using (Html.BeginForm("Example", "Home", new { id = "form" })){} 

だから私はこの

<td>@Html.RadioButtonFor(m => m.SelectedTeacher, Model.ListofTeacher[i].ID, new { @onclick = "document.getElementById('form').action = 'Delete'; 
    this.form.submit();" })</td> 

を試してみましたが、これは動作しません。

誰かが私にそれを正しく行う方法を説明できますか?

私は本当にjsにスキルがないので、情報が不足している場合は尋ねてください!

乾杯。

答えて

1

onclickを使用すると、1つのイベントのみをアクションに登録できます。

複数のイベントを登録する場合は、addEventListenerを使用する必要があり、W3C DOMで指定されたイベントリスナーを登録する方法です。

var radios = document.getElementsByName('SelectedDevice'); 
for (i = 0; i < radios.length; i++) { 
    radios[i].addEventListener('click', onRadioButtonClick); 
    radios[i].addEventListener('click', onRadioButtonClick2); 
} 

function onRadioButtonClick() { 
    document.getElementById('form').action = 'Delete'; 
    this.form.submit(); 
} 

複数のイベントをフックする代わりに、1つのイベントリスナーを使用してすべての操作を実行することもできます。 HTMLで

:JavaScriptで

<td>@Html.RadioButtonFor(m => m.SelectedDevice, Model.ListofDevice[i].ID, new { @onclick = "onRadioButtonClicked" })</td> 

function onRadioButtonClick() { 
    document.getElementById('form').action = 'Delete'; 
    this.form.submit(); 

    // Your other operations here 
} 
+1

は、一つのイベントリスナーを追加し、そこにあなたの行動のすべてを置きます。間違いなく、このようなものに対して複数のイベントリスナーを追加しないでください。 –

関連する問題