如何验证jquery对象中的每个值


How to validate each value inside a jquery object

我有以下功能:

jQuery CODE:
function validarEnviarPatrocinio(){
        var fila = $("#fila").val();
        for(var e=1; e<6; e++){
            $("#email_contactopatrocinador"+e).val($("#email_contactopatrocinador"+e+fila).val());
            var email = $("#email_contactopatrocinador"+e+fila);                
        }           
 }
PHP/HTML代码

:

<?php foreach ($this->items as $i => $item): ?>
<?php for($e=1; $e<6; $e++){ ?>
    <label for="email_contactopatrocinador<?php echo $e.$i; ?>">
        <?php echo JText::_('COM_CSTUDOMUS_GANA_PATROCINADOR_EMAIL');?>
    </label>
<input name="email_contactopatrocinador<?php echo $e.$i; ?>" id="email_contactopatrocinador<?php echo $e.$i; ?>" placeholder="<?php echo JText::_('COM_CSTUDOMUS_EJEMPLO_EMAIL');?>" type="email" />
<?php } ?>
<button id="enviarForm2" onclick="document.getElementById('cb<?php echo $i; ?>').checked = true; document.getElementById('seleccionado').value = <?php echo $item->id_inmueble; ?>;  document.getElementById('fila').value = <?php echo $i; ?>; if(!validarEnviarPatrocinio()) return false; Joomla.submitbutton('saloninmobiliarios.ganapatrocinador');" class="uk-button uk-float-right"><?php echo JText::_('COM_CSTUDOMUS_PATROCINADOR_SEND_RECOM'); ?></button>
<?php endforeach; ?>
<input type="hidden" name="fila" id="fila" value=""/>

该函数循环遍历5个"email"类型的输入字段。我想使每个输入验证,以确保他们插入电子邮件格式在里面。不管他们填的是哪个字段还是空着

你让事情变得复杂了。没有必要使用id来选择目标元素,当您有几个元素共享相同的角色时,应该使用类来代替。您可以使用jQuery each方法向元素添加类并遍历所选元素:

$('.email_fields').each(function() {
    var email = this.value;
    // validate the element's value
});

如果需要为元素添加唯一标识符,您可以继续为元素添加id属性或特定的data属性,如data-id="...",对于获取data属性的值,您可以使用jQuery data方法。

// within the `each` callback context
var id = $(this).data('id');
    function validarEnviarPatrocinio(){
            var fila = $("#fila").val();
            for(var e=1; e<6; e++){
                $("#email_contactopatrocinador"+e).val($("#email_contactopatrocinador"+e+fila).val());
                var email = $("#email_contactopatrocinador"+e+fila); 
                if ($.trim(email ).length == 0) {
                alert('Please enter valid email address in '+i+'th Field ');
            }
            if (validateEmail(email)) {
                alert('Email'+i+' is valid');
            }
            else {
                alert('Invalid Email'+i+' Address');               
            }           
     }
function validateEmail(sEmail) {
    var filter = /^(['w-'.]+)@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.)|((['w-]+'.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(']?)$/;
    if (filter.test(sEmail)) {
        return true;
    }
    else {
        return false;
    }
}

您可以使用jquery验证器并插入一个reg表达式进行验证。验证器将选择器作为输入,并使用您定义的规则集对它们进行验证,如下所示:

$('form').validate({
      rules: {
            field1: {pattern: /^[A-Z]{2}[0-9]{5}$/} // As RegExp
      }
});

*与您的情况相关的正则表达式是:/^ ([a-zA-Z0-9 _.+-])+'@(([ a-zA-Z0-9 -]) +) + ([a-zA-Z0-9]{2,4}) +美元/

在任何情况下,你也可以在js中创建regex并运行测试函数,如下所示: