0

誰かがこれについて私に教えてください。簡単なJavascript関数を実装しようとしていました。アイデアは、クリックされたボタンに応じて条件付きスクリプトを実行することです。これを理解できないようです:

<script type="text/javascript">

function whichButton(){

if(//Button 1 is clicked...){
    //Run script 1   
 }
else if(//Button 2 is clicked){
    //Run script 2  
 }
else if(//Button 3 is clicked){
    //Run  script 3  
 }
else if(//Button 4 is clicked){
    //Run script 4  
 }
else{
    //Do nothing
 }
}
</script>

<form id="form1" onSubmit="whichButton();">
<button id="btn1">Button 1</button><br/>
<button id="btn2">Button 2</button><br/>
<button id="btn3">Button 3</button><br/>
<button id="btn4">Button 4</button><br/>
</form>

前もって感謝します!

4

4 に答える 4

3

ボタン タグに onclick ハンドラを追加します。

<script type="text/javascript">    
function whichButton(buttonElement){
  alert(buttonElement.id);
  var buttonClickedId = buttonElement.id;
  if( buttonClickedId === 'btn1' ){
     // do btn1 stuff
  }
  else if( buttonClickedId === 'btn2' ){
     // do btn2 stuff
  }
  // ...
  else{
     // don't know which button was clicked
  }

}
</script>

<form id="form1" >
<button id="btn1" onclick="whichButton(this)">Button 1</button><br/>
<button id="btn2" onclick="whichButton(this)">Button 2</button><br/>
<button id="btn3" onclick="whichButton(this)">Button 3</button><br/>
<button id="btn4" onclick="whichButton(this)">Button 4</button><br/>
</form>

編集:

クリックされたボタンに基づいて異なるコードを実行するには、上記で編集した元の投稿と同様の IF ステートメントを使用します。// そのアラートを取り出すか、各 if/else if スコープに移動できます。

于 2013-03-07T20:40:35.473 に答える
0

from を関数に渡し、アクティブな要素を見つけます。

<form id="form1" onSubmit="whichButton(this);">
    Buttons...
</form>

そして JavaScript:

function whichButton(form) {
    var clicked = form.querySelector(":active");
    switch(clicked.id) {
    case "btn1":
        // do stuff
        break;
    // add more cases
    }
}

これについては確信が持てませんが、テストしたところ、うまくいくようです。IE7 以前は をサポートしていないことに注意してください:active。これらの古いバージョンでこれを機能させる方法がわかりません。

編集: これは、デモンストレーションするFiddleです。

于 2013-03-07T20:38:22.617 に答える
0

jQuery で次のことを試すことができます。

<script type="text/javascript">
        $(document).on("click", "button.btn", function(){
                console.log("You clicked " + $(this).html());
                return false;
        });
</script>
<form>
<button class="btn">Button 1</button><br/>
<button class="btn">Button 2</button><br/>
<button class="btn">Button 3</button><br/>
<button class="btn">Button 4</button><br/>
</form>
于 2013-03-07T20:41:40.917 に答える
-1

AJAX を使用してスクリプトを取得し、それらを DOM のどこかに挿入し、initialize() を使用して実行します。

$.get('js/script1.js', function(data) {
    $('#dummydiv').html(data);
    initialize();
});
于 2013-03-07T20:38:12.040 に答える