jQuery'if .change()或.keyup()'

时间:2011-10-13 16:29:19

标签: javascript jquery function

使用jQuery我希望在引发.change().keyup()时运行一个函数。

像这样。

if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
    alert( 'something happened!' );
}

修改

抱歉,我忘了提及。 .change().keyup()都需要一些变量在范围内。

8 个答案:

答案 0 :(得分:160)

您可以通过用空格分隔多个事件来绑定它们:

$(":input").bind("keyup change", function(e) {
    // do stuff!
})

docs here

希望有所帮助。干杯!

答案 1 :(得分:20)

如果你曾经动态生成页面内容或通过AJAX加载内容,那么下面的例子就是你应该采用的方式:

  1. 在多次加载脚本的情况下,例如在AJAX请求中,它会阻止双重绑定。
  2. 绑定位于文档的body上,因此无论添加,移动,删除和重新添加哪些元素,与指定选择器匹配的body的所有后代都将保留正确的绑定。
  3. 守则:

    // Define the element we wish to bind to.
    var bind_to = ':input';
    
    // Prevent double-binding.
    $(document.body).off('change', bind_to);
    
    // Bind the event to all body descendants matching the "bind_to" selector.
    $(document.body).on('change keyup', bind_to, function(event) {
        alert('something happened!');
    });
    

    请注意!我使用$.on()$.off()而不是其他方法有以下几个原因:

    1. $.live()$.die()已弃用,并且已从更新版本的jQuery中删除。
    2. 我要么需要定义一个单独的函数(因此会混淆全局范围),并将函数分别传递给$.change()$.keyup(),或者将相同的函数声明传递给每个函数所谓的;复制逻辑......这是绝对不可接受的。
    3. 如果元素被添加到DOM中,$.bind()在创建元素时不会动态绑定到元素。因此,如果绑定到:input然后向DOM添加输入,则该绑定方法不会附加到新输入。然后,您需要显式取消绑定,然后重新绑定到DOM中的所有元素(否则您最终会绑定绑定)。每次将输入添加到DOM时,都需要重复此过程。

答案 2 :(得分:2)

您可以订阅更改和密钥事件:

$(function() {
    $(':input').change(myFunction).keyup(myFunction);
});

其中myFunction是您要执行的功能:

function myFunction() {
    alert( 'something happened!' );
}

答案 3 :(得分:1)

这样做。

$(function(){
    var myFunction = function()
    {
        alert("myFunction called");
    }

    jQuery(':input').change(myFunction).keyup(myFunction);
});

答案 4 :(得分:1)

这不是事件的运作方式。相反,你给它们一个在它们发生时被调用的函数。

$("input").change(function() {
    alert("Something happened!");
});

答案 5 :(得分:1)

keyup事件输入jquery

For Demo

$(document).ready(function(){  
    $("#tutsmake").keydown(function(){  
        $("#tutsmake").css("background-color", "green");  
    });  
    $("#tutsmake").keyup(function(){  
        $("#tutsmake").css("background-color", "yellow");  
    });  
}); 
<!DOCTYPE html>  
<html>  
<title> jQuery keyup Event Example </title>
<head>  
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>  
<body>  
Fill the Input Box: <input type="text" id="tutsmake">  
</body>  
</html>   

答案 6 :(得分:0)

编写一个函数并为它们调用它。

function yourHandler(e){
    alert( 'something happened!' );        
}
jQuery(':input').change(yourHandler).keyup(yourHandler);

change()和keyup()事件注册函数返回原始集,因此可以链接它们。

答案 7 :(得分:0)

好吧,这就是我使用 Jquery 解决它的方法

$("#c_debit").on("keyup change", function(e) {
 let debitValue = $("#c_debit").val();
 if(debitValue != 0)
 {
  $( "#c_credit" ).prop( "disabled", true );
 }
 else{
  $( "#c_credit" ).prop( "disabled", false );
 }
})