0

我想在 jQuery 上制作简单的表单验证器

$('#clients_name').keyup(function(){
    if($('#clients_name').val().length >= 2){
      (...)
    }
});

但是我想检查更多输入(文本,选择...),我不知道应该如何更改第一行以使表单中的任何输入的通用操作“keyup”(或其他内容)。这对于 input=text 很好,但对于 select 不是...

$('input[type=text],select').keyup(function(){
    if($('#clients_name').val().length >= 2){
      (...)
    }
    if($('#clients_street').val().length >= 2){
      (...)
    }
});
4

2 回答 2

2

只需使用This

$('input[type="text"]').keyup(function(){   // $('select,input[type="checkbox"]').on('change',function(){
    if ($(this).val().length >= 2) {
      (...)
    }
    //Or can be
    if (this.value.length >= 2) {
      (...)
    }
});

.keyup仅适用于文本框。您需要使用 .on('change',function(){..}) 选择框并选中收音机。

于 2013-08-03T08:31:00.613 回答
0

this传递给的回调函数中的上下文.keyup()将被设置为当前 DOM 元素。简单参考this。但是select元素不会触发keyup事件。所以我会改变你在那里的东西:

$('input[type=text], select').on("change", function(){
    if(this.value.length >= 2){
      // do your validation
    }
});
于 2013-08-03T08:32:47.383 回答