0

我有两个按钮和两个按钮上的警报功能。我希望如果用户单击第一个按钮,则第一个按钮上的功能应该可以工作,但是当用户单击第二个按钮时,第一个按钮上的功能应该不起作用我的意思是如果用户单击了第二个按钮,该功能不应该在第一个按钮上工作. 下面是代码,但它不起作用:

<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

单击第二个按钮时,您可以使用 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

使用 jQuery(因为它是您为帖子提供的标签之一),您可以使用unbind

于 2013-09-12T12:44:47.587 回答
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 回答
-1

尝试这个

<div>
<input id="button1" type="button" value="Click1"/>
<input id="button2"type="button" value="Click2"/>
</div>

<script>
$('#button1').on('click', Button1Click);
$('#button2').on('click', Button2Click);

function Button1Click() {
    alert("You have clicked button 1");
}

function Button2Click() {
    alert("You have clicked button 2");
}

于 2013-09-12T13:05:08.300 回答