Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态禁用的按钮在视觉上没有变化?_Javascript_Php_Jquery_Ajax_Yii - Fatal编程技术网

Javascript 动态禁用的按钮在视觉上没有变化?

Javascript 动态禁用的按钮在视觉上没有变化?,javascript,php,jquery,ajax,yii,Javascript,Php,Jquery,Ajax,Yii,所以基本上我们有一个按钮,当点击时,它的值应该改变,应该被禁用。我们的按钮从 到 不幸的是,在刷新页面之前,按钮不会在视觉上改变。我们正在使用$(this).attr(“disabled”,“disabled”)更改按钮。我们还尝试了$(this).prop(“disabled”,true)和$(this).prop(“disabled”,“disabled”)这两种方法似乎都不起作用。如果您熟悉Yii,整个按钮代码如下所示: echo CHtml::ajaxButton(

所以基本上我们有一个按钮,当点击时,它的值应该改变,应该被禁用。我们的按钮从








不幸的是,在刷新页面之前,按钮不会在视觉上改变。我们正在使用
$(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'
            )
        );

提前感谢,
J

我认为您应该在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'
        )
    );

使用禁用的伪代码。这就是浏览器通常更改禁用输入或按钮的外观的方式
:disabled
。将样式设置为您的首选项。尽管如此,还是要将其放入全局css或正在使用的css文件中

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

嘿,谢谢你的回答。不幸的是,样式仍然没有改变(属性仍然被添加)。对于禁用的按钮,您可以在css文件中使用
:disabled
伪元素。尽管如此,它只适用于支持CSS3选择器的浏览器
input:disabled{color:graytext;background:buttonface;border:1px solid;}
查看此线程[我认为您有相同的问题。-不可复制