Joomla 邮箱注册
Joomla email registration
我有一个 Joomla 网站,它有一个处理用户注册的扩展。此扩展有两个名称和电子邮件字段,因此用户必须在表格中两次填写他们的姓名和电子邮件地址:
Screenshot of the registration
我尝试更改表格以使用第一部分(姓名和电子邮件)中的数据,并将其用于 "e-mail notification" 部分。不幸的是它没有用..
这是第一部分(姓名和邮件)的代码:
<div class="control-group">
<label class="control-label" for="account_name"> <?php echo JText::_( 'ACCOUNT_NAME' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="account_name" id="account_name" size="80" maxlength="250" value="<?php echo $this->account->account_name;?>" <?php if(!$this->account->id) echo "autofocus='autofocus'"; ?> />
</div>
</div>
<div class="control-group newJoomlaAccountField hidden" id="acc_email_group">
<label class="control-label" for="account_email"> <?php echo JText::_( 'ACCOUNT_EMAIL' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="account_email" id="account_email" size="80" maxlength="250"/>
<span class="help-inline hidden" id="account_email_error"><?php echo JText::_( 'REQUIRED' ); ?></span>
</div>
</div>
这是第二个 "e-mail notification":
的代码
<div class="control-group">
<label class="control-label" for="name"> <?php echo JText::_( 'YOUR_NAME' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="name" id="name" size="80" maxlength="250" value="<?php echo $this->account->name;?>" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="email"> <?php echo JText::_( 'EMAIL' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="email" id="email" size="80" maxlength="250" value="<?php echo $this->account->email;?>" />
</div>
</div>
不幸的是,如果用户没有填写第二部分,他们根本不会收到任何电子邮件通知,因为扩展程序在管理员中显示了一个空白的电子邮件和他们的名字。任何想法这些字段只有一次,但在两个不同的地方使用数据? :)
我喜欢的一种验证方法是 jQuery validate
,因为它非常灵活并且可以针对不同的用例轻松定制
您在站点范围内或仅在表单页面上包含 jQuery 插件并添加验证规则
这是一个示例,用于检查是否已在表单中输入了姓名和有效的电子邮件地址。 View this live
这是验证插件的一个相对简单的应用程序,这里有一些更复杂的示例,具有更复杂的验证和通过 javascript:
传递的规则
https://jqueryvalidation.org/files/demo/
希望对您有所帮助!
HTML
<!-- load jquery validate from CDN -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<form action="" name="registration">
<label for="firstname">First Name</label>
<input type="text" name="firstname" id="firstname" placeholder="John"><br>
<label for="email">Email</label>
<input type="email" name="email" id="email" placeholder="john@doe.com"><br>
<button type="submit">Register</button>
</form>
<!-- validate form when it's submitted -->
<script type="text/javascript">
(function($) {
$(document).ready(function() {
$("form[name='registration']").validate({
// Specify validation rules
rules: {
firstname: "required",
email: {
required: true,
email: true
}
},
// Specify validation error messages
messages: {
firstname: "Please enter your firstname",
email: "Please enter a valid email address"
},
submitHandler: function(form) {
form.submit();
}
});
});
})(jQuery);
</script>
我有一个 Joomla 网站,它有一个处理用户注册的扩展。此扩展有两个名称和电子邮件字段,因此用户必须在表格中两次填写他们的姓名和电子邮件地址:
Screenshot of the registration
我尝试更改表格以使用第一部分(姓名和电子邮件)中的数据,并将其用于 "e-mail notification" 部分。不幸的是它没有用..
这是第一部分(姓名和邮件)的代码:
<div class="control-group">
<label class="control-label" for="account_name"> <?php echo JText::_( 'ACCOUNT_NAME' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="account_name" id="account_name" size="80" maxlength="250" value="<?php echo $this->account->account_name;?>" <?php if(!$this->account->id) echo "autofocus='autofocus'"; ?> />
</div>
</div>
<div class="control-group newJoomlaAccountField hidden" id="acc_email_group">
<label class="control-label" for="account_email"> <?php echo JText::_( 'ACCOUNT_EMAIL' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="account_email" id="account_email" size="80" maxlength="250"/>
<span class="help-inline hidden" id="account_email_error"><?php echo JText::_( 'REQUIRED' ); ?></span>
</div>
</div>
这是第二个 "e-mail notification":
的代码<div class="control-group">
<label class="control-label" for="name"> <?php echo JText::_( 'YOUR_NAME' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="name" id="name" size="80" maxlength="250" value="<?php echo $this->account->name;?>" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="email"> <?php echo JText::_( 'EMAIL' ); ?></label>
<div class="controls">
<input class="inputbox" type="text" name="email" id="email" size="80" maxlength="250" value="<?php echo $this->account->email;?>" />
</div>
</div>
不幸的是,如果用户没有填写第二部分,他们根本不会收到任何电子邮件通知,因为扩展程序在管理员中显示了一个空白的电子邮件和他们的名字。任何想法这些字段只有一次,但在两个不同的地方使用数据? :)
我喜欢的一种验证方法是 jQuery validate
,因为它非常灵活并且可以针对不同的用例轻松定制您在站点范围内或仅在表单页面上包含 jQuery 插件并添加验证规则
这是一个示例,用于检查是否已在表单中输入了姓名和有效的电子邮件地址。 View this live
这是验证插件的一个相对简单的应用程序,这里有一些更复杂的示例,具有更复杂的验证和通过 javascript:
传递的规则
https://jqueryvalidation.org/files/demo/
希望对您有所帮助!
HTML
<!-- load jquery validate from CDN -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<form action="" name="registration">
<label for="firstname">First Name</label>
<input type="text" name="firstname" id="firstname" placeholder="John"><br>
<label for="email">Email</label>
<input type="email" name="email" id="email" placeholder="john@doe.com"><br>
<button type="submit">Register</button>
</form>
<!-- validate form when it's submitted -->
<script type="text/javascript">
(function($) {
$(document).ready(function() {
$("form[name='registration']").validate({
// Specify validation rules
rules: {
firstname: "required",
email: {
required: true,
email: true
}
},
// Specify validation error messages
messages: {
firstname: "Please enter your firstname",
email: "Please enter a valid email address"
},
submitHandler: function(form) {
form.submit();
}
});
});
})(jQuery);
</script>