确定在文本框值更改后是否单击按钮

时间:2016-05-17 09:55:09

标签: javascript html events event-handling mouseevent

我有以下屏幕:

enter image description here

我已经绑定了box2列下的change个文本框事件。现在,当用户在更改值后单击时会触发更改事件,但我不希望用户在制作后单击屏幕中的按钮box2文本框中的更改。

这意味着如果用户在任何文本框中进行更改后立即单击按钮,但是同时特定框的change事件应该触发,则我希望阻止单击按钮通常

是否有可能找到最后一个小部件或在事件中触发的事件,这听起来很奇怪,但如果我能确定最后发生的事情是文本框的更改,我可以停止点击按钮。

 //Change listener of textboxes
  jQuery('#parent').on('change','.textbox',function(e){

        var btn = jQuery(this).closest('.button');         
        if(btn.length){  
          jQuery(this).addClass('red',500,function(){ 
             var poObj = {'changedRef':{'val':jQuery(this)}};      
             btn.triggerHandler('click',poObj);
          });
        } 
      });

    //this is a buttonClick  
      jQuery('.button').on('click',handlerBtnClick);

您可以从代码中看到文本框上的更改实际上是调用其行中相应按钮的单击。但问题是用户在框中进行更改后单击不同行的按钮

想法好吗?

由于

2 个答案:

答案 0 :(得分:0)

P.S。

event.type 给出了触发的事件。

有无

1)Click function for your button( eg:func1() )

2)Change function for your textboxs( eg:func2() )

声明一个全局变量(例如:eventTp)

调用func2()时,将 event.type 赋给变量eventTp。 调用func1()时,检查eventTp变量的值是否为(更改)

如果是,则返回false,这将阻止事件发生。

希望这有帮助。

答案 1 :(得分:0)

你的意思是这样的吗?

[[!get_homepage? &file='[[!homePageSnippet]]']]
var button = document.getElementById('button');

document.getElementById('box2').addEventListener('change',function(){
  button.disabled = true;
});

document.getElementById('box1').addEventListener('change',function(){
  button.disabled = false;
});