Javascript 组合输入并选择输入/更改

Javascript 组合输入并选择输入/更改,javascript,jquery,Javascript,Jquery,我有两个输入字段和两个选择字段 我对输入字段的输入进行一些前端验证,当我更改选择字段的选择时。。。适用于所有领域 我让它工作的唯一方法是我这样分割它: var is_currencyBilling; var is_countryBilling; var is_cityBilling; var is_postalBilling; $('#cityBilling,#postalBilling').on('input', function () { ... }); $('#curre

我有两个输入字段和两个选择字段

我对输入字段的输入进行一些前端验证,当我更改选择字段的选择时。。。适用于所有领域

我让它工作的唯一方法是我这样分割它:

var is_currencyBilling;
var is_countryBilling;
var is_cityBilling;
var is_postalBilling;

$('#cityBilling,#postalBilling').on('input', function () {

    ...

}); 

$('#currencyBilling,#countryBilling').on('change', function () {

    ...

});
$('#cityBilling,#postalBilling,#currencyBilling,#countryBilling').on('change', function () {

    console.log('Test');

    ...

}); 
有没有办法把这些结合起来?还是我必须像上面那样把它分开

编辑:

如果我将其合并为如下更改:

var is_currencyBilling;
var is_countryBilling;
var is_cityBilling;
var is_postalBilling;

$('#cityBilling,#postalBilling').on('input', function () {

    ...

}); 

$('#currencyBilling,#countryBilling').on('change', function () {

    ...

});
$('#cityBilling,#postalBilling,#currencyBilling,#countryBilling').on('change', function () {

    console.log('Test');

    ...

}); 

。。。当我切换到另一个输入字段或某个输入字段失去焦点后,它就会工作。但是,当我“更改”输入字段的值时,是否有机会保持以前的验证行为正确?

您可以对所有字段使用相同的更改事件,或者使用多个事件,如
$(选择器)。在('change input',validate)

但您也可以侦听使用同一事件处理程序的不同事件

在该处理程序中,您的业务逻辑可以适应事件类型或元素类型或您需要的任何其他特殊条件

基本示例

$('input:text')。在('input',validate)上;
$('input:checkbox')。在('click',validate)上
$('select')。在('change',validate')上;
功能验证(evt){
控制台清除()
var$el=$(此),
val=$el.val();
log(evt.type+'事件发生在:'+this.name+',新值为:',val);
如果($el.is('input:text')){
log('这是一个输入:text');
}else if($el.is('select')){
log('这是一个select');
}else if($el.is('input:checkbox')){
console.log('复选框已选中=',this.checked)
}
}

Inp1:Inp2:

检查

选择1 一 二 Sel 2 一 二
您可以使用change for input field来更改文本输入和选择输入支持
更改
事件更改是将它们组合在“更改”中的一种方式(请参见上面的编辑)。。但是,如果我现在更改输入字段。。。它忽略了变化。这可能是什么原因造成的?我甚至没有对文本输入进行控制台“测试”,我相信只有在您离开输入焦点时才会触发更改事件。您是在更改后使用制表符还是单击新输入@菲利普姆