JQuery,如何从if语句中识别正确的$(this)?

JQuery,如何从if语句中识别正确的$(this)?,jquery,if-statement,this,Jquery,If Statement,This,我正在编写一个基本的jQuery表单验证脚本,我的工作如下: (请注意,我简化了验证标准,因为这不是问题所在。) $(“#联系方式”).submit(函数(事件){ event.preventDefault(); var name=$(this.find('input[type=“text”]).val(); var message=$(this.find('textarea').val(); //验证 if(name.length大多数插件这样做的方式是使用一个类来描述每个输入的验证规则,例如

我正在编写一个基本的jQuery表单验证脚本,我的工作如下: (请注意,我简化了验证标准,因为这不是问题所在。)

$(“#联系方式”).submit(函数(事件){
event.preventDefault();
var name=$(this.find('input[type=“text”]).val();
var message=$(this.find('textarea').val();
//验证

if(name.length大多数插件这样做的方式是使用一个类来描述每个输入的验证规则,例如
,它可以告诉脚本该字段是必需的,并且它必须包含一个字符串

然后可以使用类似于
$('forminput')的东西。每个(函数(n){//code here});
这样
$(此)
将在循环的每次迭代中引用有问题的输入字段


希望这有助于大多数插件这样做的方式是使用一个类来描述每个输入的验证规则,例如
可以告诉脚本该字段是必需的,并且它必须包含一个字符串

然后可以使用类似于
$('forminput')的东西。每个(函数(n){//code here});
这样
$(此)
将在循环的每次迭代中引用有问题的输入字段


希望这能有所帮助

也许有点像:

$('#contact-form').submit( function (event) {
    event.preventDefault();

    jQuery.each($(this).find('input[type="text"]'), function() {
        var fieldVal = $(this).value;
        if (fieldVal.length <= 3) {
            $(this).after('<span>Error<span>');
        }
    });   

    jQuery.each($(this).find('textarea'), function() {
        var fieldVal = $(this).value;
        if (fieldVal.length <= 3) {
            $(this).after('<span>Error<span>');
        }
    });   
}); 
$(“#联系方式”).submit(函数(事件){
event.preventDefault();
jQuery.each($(this).find('input[type=“text”]”),function(){
var fieldVal=$(this).value;

如果(fieldVal.length可能类似于:

$('#contact-form').submit( function (event) {
    event.preventDefault();

    jQuery.each($(this).find('input[type="text"]'), function() {
        var fieldVal = $(this).value;
        if (fieldVal.length <= 3) {
            $(this).after('<span>Error<span>');
        }
    });   

    jQuery.each($(this).find('textarea'), function() {
        var fieldVal = $(this).value;
        if (fieldVal.length <= 3) {
            $(this).after('<span>Error<span>');
        }
    });   
}); 
$(“#联系方式”).submit(函数(事件){
event.preventDefault();
jQuery.each($(this).find('input[type=“text”]”),function(){
var fieldVal=$(this).value;

如果(fieldVal.length,jquery中的这个引用生成事件的元素:在您的例子中,
$(这个)
引用id为'contact.form'的元素

你可以这样做:

$('#contact-form').submit( function (event) {
    event.preventDefault();

    $('input[type=text],textarea').each(function(){
          //in this case this refers to the current iterated object
          var value = $(this).val();
          if (value.length < 3){
              $(this).after('<span>Error - too short<span>');
          }

    });

}); 
$(“#联系方式”).submit(函数(事件){
event.preventDefault();
$('input[type=text],textarea')。每个(函数(){
//在本例中,这是指当前迭代的对象
var值=$(this.val();
如果(值.长度<3){
$(this.after('Error-太短');
}
});
}); 

jquery中的此元素指生成事件的元素:在您的示例中,
$(此)
指id为'contact.form'的元素

你可以这样做:

$('#contact-form').submit( function (event) {
    event.preventDefault();

    $('input[type=text],textarea').each(function(){
          //in this case this refers to the current iterated object
          var value = $(this).val();
          if (value.length < 3){
              $(this).after('<span>Error - too short<span>');
          }

    });

}); 
$(“#联系方式”).submit(函数(事件){
event.preventDefault();
$('input[type=text],textarea')。每个(函数(){
//在本例中,这是指当前迭代的对象
var值=$(this.val();
如果(值.长度<3){
$(this.after('Error-太短');
}
});
}); 

既然你不是一个人在做这件事,你是在问我们……为什么不看看你知道的某个插件,看看它们是如何做的?既然你不是一个人在做这件事,你是在问我们……为什么不看看你知道的某个插件,看看它们是如何做的?一个小小的更正。在顶级上下文中,
引用id为'contact form'的元素。令牌
$(this)
实际上是说使用参数
this
调用
$()
函数,而不是实际的“引用”它返回该节点的jQuery包装版本。但由于您所处的上下文中,
已指向调用
$的jQuery包装元素(此)
是幂等的,可以省略。您可以直接使用
获得完全相同的结果。感谢您的澄清!)每个选项中的第二个参数应该是一个上下文,您应该执行
$('input[type=text]',this)
而不是
$('input[type=text]','textarea')
对不起,我输入错误,我想说的是类型text的所有输入和所有textarea(),我想这就是我需要的,我只是使用add()组合多个选择器。谢谢。一个小的更正。在顶级上下文中,
this
引用id为'contact form'的元素。令牌
$(this)
实际上是说使用参数
this
调用
$()
函数,而不是实际的“reference”它返回该节点的jQuery包装版本。但由于您所处的上下文中,
已指向调用
$的jQuery包装元素(此)
是幂等的,可以省略。您可以直接使用
获得完全相同的结果。感谢您的澄清!)每个选择中的第二个参数应该是一个上下文,你应该做
$('input[type=text]',this)
而不是
$('input[type=text]','textarea')
对不起,我输入错了,我想说的是所有类型text的输入和所有textarea(),我想这就是我需要的,我只是使用add()来组合多个选择器。谢谢。