动态禁用按钮在视觉上不会改变?

时间:2013-10-10 01:51:22

标签: javascript php jquery ajax yii

所以基本上我们有一个按钮,当点击它时,它的值应该改变,它应该被禁用。我们的按钮来自
<input class="saveButton" name="yt26" type="button" value="save" id="yt26">



<input class="saveButton" name="yt26" type="button" value="saved" id="yt26" disabled>

不幸的是,在页面刷新之前,按钮不会直观地改变。我们正在使用$(this).attr("disabled","disabled")更改按钮我们还尝试了$(this).prop("disabled", true)$(this).prop("disabled","disabled")这些似乎都没有效果。如果您熟悉Yii,则整个按钮代码发布在下面:

echo CHtml::ajaxButton(
            'save', 
            Yii::app()->createUrl('dashboard/savelink'),
            array( // ajax options
                'type' => 'POST',
                'context' => "js:this",
                'success' => 'js:function() {$(this).attr("disabled", "disabled"); $(this).val("saved") ;}',
                'data' => array(
                    'commentLink' => $commentLink
                )
            ),
            array(
                'class'=>'saveButton'
            )
        );

提前致谢,你好

2 个答案:

答案 0 :(得分:1)

使用disabled伪。这就是您的浏览器通常如何更改已禁用输入或按钮:disabled的外观。根据您的喜好设置样式。尽管如此,将它放在你正在使用的全局css或css文件中

input:disabled, button:disabled{
  color:graytext;
  background: buttonface;
  border:1px solid;
}

答案 1 :(得分:0)

我认为你应该在ajax的beforeSend选项中添加$(this).attr("disabled", "disabled")

echo CHtml::ajaxButton(
        'save', 
        Yii::app()->createUrl('dashboard/savelink'),
        array( // ajax options
            'type' => 'POST',
            'context' => "js:this",
            'beforeSend => js: function(){$(this).attr("disabled", "disabled"); },
            'success' => 'js:function() { $(this).val("saved") ;}',
            'data' => array(
                'commentLink' => $commentLink
            )
        ),
        array(
            'class'=>'saveButton'
        )
    );