0

2 つのボタンと両方のボタンにアラート機能があります。ユーザーが最初のボタンをクリックすると、最初のボタンの機能が機能するはずですが、ユーザーが2番目のボタンをクリックすると、1番目のボタンの機能が機能しないようにする必要があります。ユーザーが2番目のボタンをクリックした場合、最初のボタンの機能が機能しないことを意味します. 以下はコードですが、機能していません:

<script>
function abc(){
    alert ("its a alert box!");
}

function xyz(){
    var a=150;
    alert(a);
}

<body>
<input type="button" value="submit 1" onClick="abc();">

<input type="button" value="submit 2" onClick="xyz();">
</body>
4

4 に答える 4

2

2 番目のボタンがクリックされたときに、jquery を使用して最初のボタンのクリック イベントをバインド解除できます。ただし、簡単にできるように、いくつかの id 属性を追加する必要があります。

<body>
<script>
function abc(){

   alert ("its a alert box!");
}
function xyz(){
   $('#btn1').unbind('click');
   var a=150;

   alert(a);   
}
</script>

<input id="btn1" type="button" value="submit 1" onClick="abc();"></input>

<input id="btn2" type="button" value="submit 2" onClick="xyz();"></input>
</body>

インラインの onclick 属性に依存しないようにコードをさらに改良することもできます。

$(document).ready(function(){
     $('#btn1').click(abc);
     $('#btn2').click(xyz);
})
于 2013-09-12T12:49:39.363 に答える
0

まず、インライン クリック ハンドラを使用しないでください。私見、このようなものがより良いでしょう:

<script>
$(document).ready(function(){

    function abc(){
       alert ("its a alert box!");
    }

    function xyz(){
       var a=150;
       alert(a);   
    }

   var bt1enabled = true;
   $('body').on('click', 'input[type=button]', function(){
      if(this.id==="btn1" && bt1enabled) {
          abc();
      } else if (this.id==="btn2") {
          btn1enabled = false; // or btn1enabled = !btn1enabled if this is supposed to toggle
          xyz();
      }
   });
}):
</script>

<body>
  <input id="btn1" type="button" value="submit 1"></input>  
  <input id="btn2" type="button" value="submit 2"></input>
</body>
于 2013-09-12T13:00:05.367 に答える