【发布时间】:2014-08-04 20:54:27
【问题描述】:
有以下注册表
<?php
$form = $this->form;
if(isset($form)) $form->prepare();
$form->setAttribute('action', $this->url(NULL,
array('controller' => 'register', 'action' => 'process')));
$form->setAttribute('method', 'post');
echo $this->form()->openTag($form);
?>
<dl class="form-signin">
<dd><?php
echo $this->formElement($form->get('name_reg'));
echo $this->formElementErrors($form->get('name_reg'));
?></dd>
<div class="alert alert-danger alert-block fade in" id="emailCheck">
<button type="button" class="close" data-dismiss="alert">×</button>
<p>Invalid email format</p>
</div><!-- end alert -->
<dd><?php
echo $this->formElement($form->get('email_reg'));
echo $this->formElementErrors($form->get('email_reg'));
?></dd>
<div class="alert alert-danger alert-block fade in" id="passwordCheck">
<button type="button" class="close" data-dismiss="alert">×</button>
<p></p>
</div><!-- end alert -->
<dd><?php
echo $this->formElement($form->get('password_reg'));
echo $this->formElementErrors($form->get('password_reg'));
?></dd>
<dd><?php
echo $this->formElement($form->get('confirm_password_reg'));
echo $this->formElementErrors($form->get('confirm_password_reg'));
?></dd>
<br>
<dd><?php
echo $this->formElement($form->get('send_reg'));
echo $this->formElementErrors($form->get('send_reg'));
?></dd>
<?php echo $this->form()->closeTag() ?>
在寄存器的布局中添加了 jQuery 库和 script.js,使用:
<?php echo $this->headScript()
->prependFile($this->basePath() . '/js/jquery-1.8.2.min.js')
->prependFile($this->basePath() . '/js/script.js')
; ?>
script.js 的结构:
$( document ).ready(function() {
$("#btnRegister").click( function() {
$("#email").css("border-color", "");
$("#password").css("border-color", "");
var email = $("#email").val();
var password = $("#password").val();
var confirm_password = $("#confirm_password").val();
$("#Register").submit( function() {
return false;
});
if((/([\w\-]+\@[\w\-]+\.[\w\-]+)/.test(email)) != true) {
$("#email").css("border-color", "red");
$("#emailCheck").slideDown();
} else if(password.length < 6) {
$("#password").css("border-color", "red");
$("#passwordCheck").text("Password must be at least 6 characters long");
$("#passwordCheck").slideDown();
} else if ((password == confirm_password) != true) {
$("#password").css("border-color", "red");
$("#passwordCheck").text("Password doesn't match");
$("#passwordCheck").slideDown();
} else if((/((?=.*[0-9])(?=.*[A-Z]))/gm.test(password)) != true) {
$("#password").css("border-color", "red");
$("#passwordCheck").text("Password must contian at least one digit and upper case");
$("#passwordCheck").slideDown();
} else {
$.post( $("#Register").attr("action"),
$("#Register :input").serializeArray(),
function(info) {
clear();
});
location.href = "auth";
}
});
function clear() {
$("#Register :input").each( function() {
$(this).val("");
});
}
});
问题:
以下脚本应该通过单击 ID 为 #btnRegister 的按钮(即“send_reg”元素)不提交 ID 为 #Register 的标准表单并执行以下操作:
- 检查电子邮件格式,以防将输入电子邮件的边框颜色设置为红色并向下滑动 ID 为 #emailCheck 的 div。
- 检查密码长度是否至少为 6 个字符,并且至少包含 1 个数字和 1 个大写字母。还要检查密码和 cofirm_password 是否相同。相反,将 Password 设为红色边框颜色,然后将 ID 为 #passwordCheck 的 div 向下滑动,并带有相应的文本。
我在简单的 php 项目中尝试了所有这些并且它工作了,但是我将所有这些都包含在 Zend Framework 中并且我不工作。任何想法我如何检查注册视图是否已归档或如何以另一种方式包含 .js 文件。因为当我在 Chrome 中检查网页时,有 script.js。
已修复 改变了
->prependFile($this->basePath() . '/js/script.js')
到
->appendFile($this->basePath() . '/js/script.js')
【问题讨论】:
-
您的 PHP 日志告诉您什么?您可以在日志中发布错误吗?你的 java 脚本控制台有什么错误吗?
-
我用的是xampp,你的意思是这个文件“\xampp\apache\logs\error.log”?
-
从控制台我得到这个错误:**Uncaught ReferenceError: $ is not defined **
-
\xampp\apache\logs\error.log 文件可能会给您带来 apache 错误以及 PHP 错误,这可能会使情况有些混乱。查看您的 php.ini 文件以配置您的错误文件。见:cyberciti.biz/tips/php-howto-turn-on-error-log-file.html
-
PHP 将所有错误放入 error_log = "C:\xampp\php\logs\php_error_log" 并且 "display_errors" 从 php.ini 开启,但我今天没有任何错误,那将有一些与我的项目类似的东西。在 java 脚本控制台中发现一个错误,仅此而已。
标签: php jquery zend-framework2