Javascript JQUERY:如果我有多个控制验证的字段,如何减少代码

Javascript JQUERY:如果我有多个控制验证的字段,如何减少代码,javascript,php,jquery,performance,Javascript,Php,Jquery,Performance,例如,我有3个功能,我控制每个字段的键控;最后,我控制了相同的代码,所以我只想将3个字段的代码设置为1次 ens_q_frio.keydown(function (event) { if (event.shiftKey == true) { event.preventDefault(); } if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode

例如,我有3个功能,我控制每个字段的键控;最后,我控制了相同的代码,所以我只想将3个字段的代码设置为1次

ens_q_frio.keydown(function (event) {

    if (event.shiftKey == true) {
        event.preventDefault();
    }

    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

    } else {
        event.preventDefault();
    }

    if ($(this).val().indexOf('.') !== -1 && event.keyCode == 190)
        event.preventDefault();
});

ens_q_cal.keydown(function (event) {

    if (event.shiftKey == true) {
        event.preventDefault();
    }

    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

    } else {
        event.preventDefault();
    }

    if ($(this).val().indexOf('.') !== -1 && event.keyCode == 190)
        event.preventDefault();
});

ens_t_frio.keydown(function (event) {

    if (event.shiftKey == true) {
        event.preventDefault();
    }

    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

    } else {
        event.preventDefault();
    }

    if ($(this).val().indexOf('.') !== -1 && event.keyCode == 190)
        event.preventDefault();
}); 
创建一个函数:

function validate(event) {
  if (event.shiftKey == true) {
            event.preventDefault();
        }

        if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

        } else {
            event.preventDefault();
        }

        if($(this).val().indexOf('.') !== -1 && event.keyCode == 190)
            event.preventDefault();
}

对其他输入执行相同的操作。

将keydown参数作为单独的函数,然后只传递它。如果字段位于数组中,也可以使用forEach,您可以将其放入函数中,并将其置于每个事件处理程序中

$function{ $ens_q_frio.keydownfunctionevent{ KeydownEvents_q_frio,事件; }; $ens_q_cal.keydownfunctionevent{ KeyDownEvents\u q\u cal,事件; }; $ens\u t\u frio.keydownfunctionevent{ KeydownEvents\u t\u frio,事件; }; } 函数KeyDownEventtxtBox,事件{ 如果event.shiftKey==true{ 违约事件; }
如果event.keyCode>=48&&event.keyCode=96&&event.keyCode此示例可以简化为ens\u frio.keydownvalidate;是的,感谢您的更正,它可以在不使用匿名函数的情况下使用。代码段已编辑。
ens_t_frio.keydown(validate);