Javascript 我能';t重新加载我的联系人表单的验证码

Javascript 我能';t重新加载我的联系人表单的验证码,javascript,php,jquery,yii,Javascript,Php,Jquery,Yii,我正在使用Yii创建我的网页。当我创建页面时,Yii创建了一个与以下内容非常相似的表单: <?php /* @var $this SiteController */ /* @var $model ContactForm */ /* @var $form CActiveForm */ $this->pageTitle=Yii::app()->name . ' - Contact'; $this->breadcrumbs=array( 'Contact', ); ?>

我正在使用Yii创建我的网页。当我创建页面时,Yii创建了一个与以下内容非常相似的表单:

<?php
/* @var $this SiteController */
/* @var $model ContactForm */
/* @var $form CActiveForm */

$this->pageTitle=Yii::app()->name . ' - Contact';
$this->breadcrumbs=array(
'Contact',
);
?>

<?php if(Yii::app()->user->hasFlash('contact')): ?>

<div class="flash-success">
    <?php echo Yii::app()->user->getFlash('contact'); ?>
</div>

<?php else: ?>

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
    'validateOnSubmit'=>true,
),
)); ?>

<p class="note"><?php echo Yii::t('app','Fields with');?> <span class="required">*</span> <?php echo Yii::t('app','are required.');?></p>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model,'name'); ?>
    <?php echo $form->textField($model,'name'); ?>
    <?php echo $form->error($model,'name'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'email'); ?>
    <?php echo $form->textField($model,'email'); ?>
    <?php echo $form->error($model,'email'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'subject'); ?>
    <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
    <?php echo $form->error($model,'subject'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'body'); ?>
    <?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>
    <?php echo $form->error($model,'body'); ?>
</div>

<?php if(CCaptcha::checkRequirements()): ?>
<div class="row">
    <?php echo $form->labelEx($model,'verifyCode'); ?>
    <div>
    <?php $this->widget('CCaptcha'); ?>
    <?php echo $form->textField($model,'verifyCode'); ?>
    </div>
    <div class="hint"><?php echo Yii::t('app','Please enter the letters as they are shown in the image above.');?>
    <br/><?php echo Yii::t('app','Letters are not case-sensitive.');?></div>
    <?php echo $form->error($model,'verifyCode'); ?>
</div>
<?php endif; ?>

<div class="row buttons">
    <?php echo CHtml::submitButton('Submit'); ?>
</div>

<?php $this->endWidget(); ?>

</div><!-- form -->

<?php endif; ?> 
我试图在谷歌上搜索类似的错误,但什么也没找到。老实说,我不明白发生了什么事。我猜我在我的网页的另一个文件中添加的代码会产生这个错误,但我不知道…我不明白这段代码是什么意思

求你了,我需要你的帮助

有人能帮我吗?谢谢

编辑:

如果我在浏览器上查看网页的源代码,并搜索“captcha.html”,我可以看到以下代码:

<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#yw0').after("<a id=\"yw0_button\" href=\"\/MyApp\/site\/captcha.html?refresh=1    \">Obtenga un nuevo c\u00f3digo<\/a>");
jQuery(document).on('click', '#yw0_button', function(){
jQuery.ajax({
    url: "\/MyApp\/site\/captcha.html?refresh=1",
    dataType: 'json',
    cache: false,
    success: function(data) {
        jQuery('#yw0').attr('src', data['url']);
        jQuery('body').data('captcha.hash', [data['hash1'], data['hash2']]);
    }
});
return false;
});

/*
但是我在任何地方都没有找到captcha.html

编辑2: 我发现了问题。我在wep页面主页的末尾添加了javascript代码。我补充说:

<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-photostack.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-coin-slider.min.js"></script>
问题出在CCaptcha Yii小部件中:

jQuery(document).on('click', '$selector', function(){
    jQuery.ajax({
    ...
    });
    return false;
});
单击侦听器位于文档上,而不是元素本身。在这段代码之后添加脚本标记时,将加载一个新的jQuery版本,该版本将清除init上的所有侦听器

为了解决这个问题,只使用一个jQuery版本,最好是包含一个


如果您真的想替换它,请以正确的方式进行,在config中的
CClientScript->scriptMap
中,将
jquery.js
jquery.min.js
键的值设置为jquery的新URL。

让人深思:“始终使用您作品的增量副本”,这样您就可以恢复到以前的工作方式。现在,我注意到
captcha.html
——如果该文件中有任何PHP,并且您没有正确地将Apache设置为将
.html
视为PHP?如果是这样的话,那么这将阻止它的发展。感谢Fredd-ii-,我不知道文件captcha.html在哪里,我试图找到它,但我找不到…所以我确定我没有在那里引入任何php代码…我总是尝试在做更改时修改所有代码,但说实话,我没有修改这个按钮,现在我不知道问题出在哪里……不客气。那就试试看你能不能找到它。这很奇怪,它是由
Yii
创建的,但没有保存在任何地方。Fred-ii,我再次搜索它,但也没有找到它。我在主帖上写了更多的东西。谢谢
jQuery(document).on('click', '$selector', function(){
    jQuery.ajax({
    ...
    });
    return false;
});