我有以下功能:
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并运行测试函数,如下所示: