Php 在yii中上载文件时禁用按钮

Php 在yii中上载文件时禁用按钮,php,file-upload,yii,Php,File Upload,Yii,我试图用yii制作一个上传字段表单,当上传一个大文件并按submit时,我得到一个部分上传的错误 我理解这是因为我没有让文件正确上传,我的php.ini设置也正确,可以处理20MB的帖子和上传 我想要的是,当上传文件时,我想将按钮更改为其他按钮,或者只是将其删除,直到文件正确上传 我该怎么做 我的\u表单包含以下代码 <?php /* @var $this ImageController */ /* @var $model Image */ /* @var $form CActiveFor

我试图用yii制作一个上传字段表单,当上传一个大文件并按submit时,我得到一个部分上传的错误

我理解这是因为我没有让文件正确上传,我的php.ini设置也正确,可以处理20MB的帖子和上传

我想要的是,当上传文件时,我想将按钮更改为其他按钮,或者只是将其删除,直到文件正确上传

我该怎么做

我的\u表单包含以下代码

<?php
/* @var $this ImageController */
/* @var $model Image */
/* @var $form CActiveForm */
?>
<script>
    $('input:submit').click(function(){
        $('p').text("Form submiting.....");
        $('input:submit').attr("disabled", true);
    });
</script>
<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'image-form',
    'htmlOptions'=>array('enctype'=>'multipart/form-data'),
    // Please note: When you enable ajax validation, make sure the corresponding
    // controller action is handling ajax validation correctly.
    // There is a call to performAjaxValidation() commented in generated controller code.
    // See class documentation of CActiveForm for details on this.
    'enableAjaxValidation'=>false,
)); ?>

    <p class="note">Fields with <span class="required">*</span> are required.</p>

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

    <div class="row">
        <?php echo $form->labelEx($model,'imageUrl'); ?>
        <?php echo $form->fileField($model,'imageUrl',array('size'=>50,'maxlength'=>50)); ?>
        <?php echo $form->error($model,'imageUrl'); ?>
    </div>

    <div class="row buttons">
        <?php echo CHtml::submitButton('Upload' ,array('class'=>'button')); ?>
    </div>

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

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

只需将onclick事件添加到Submit按钮,即可禁用该按钮,并在上载完成或中止时重新启用该按钮

$('input:submit').click(function(){
    $('p').text("Form submiting.....");
    $('input:submit').attr("disabled", true);   
});
像这样的事你可以用yii开箱即用

Yii::app()->clientScript->registerScript('search', "
    $('form#id').submit(function(){ 
        $(this).find('input[type=submit]').attr('disabled', 'disabled'); 
    });
", CClientScript::POS_READY);

您可以使用javascript/jquery实现这一点。首先试试。我试过下面这个问题,它可以工作,但是没有上传任何东西到数据库。你好,我正在尝试,但它似乎没有做任何事情。我导入了j query库,脚本就在表单旁边,但当“选择图像提交”按钮仍然存在时,当我按下“提交”按钮时,仍然会出现错误。我是否必须更改一些php或其他内容?发布您的代码将非常有帮助。我假设你的按钮有错误的dom标识符,所以它要么绑定到错误的元素,要么根本不绑定。好吧,它现在可以工作了,必须添加$(document)。一开始就准备好了。现在它只是给我提交表单,这是一个很糟糕的过程,但即使在等待它上传1.3MB文件5分钟后,它也没有做任何事情。啊,我的错。在这种情况下,您必须使用submit事件,否则表单将永远不会被提交。像$('form#id').submit(函数(){$(this.find('input[type=submit]')).attr('disabled','disabled');})一样使用它;您还应该使用yii函数来注册javascript,如'yii::app()->clientScript->registerScript('search',“$('form#id').submit(函数(){$(this).find('input[type=submit]').attr('disabled','disabled');});”,CClientScript POS READY)`
Yii::app()->clientScript->registerScript('search', "
    $('form#id').submit(function(){ 
        $(this).find('input[type=submit]').attr('disabled', 'disabled'); 
    });
", CClientScript::POS_READY);