为什么onchange事件不能使用class属性?

时间:2013-04-12 13:46:30

标签: class cakephp onchange

我遇到了cakephp的问题,事实上,我正在尝试在选择框中使用“onChange”事件,但我不知道为什么当我尝试设置特定时它不起作用我输入的课程。

这是我的代码:

<form>
<?php
echo $this->Form->input(' ', array('class' => 'styledselect_pages', 'options' => array(10, 20, 40), 'empty' => 'Afficher par', 'onchange' => 'alert();'));
?>
</form>

此代码无效,但如果我只删除'class'=&gt; 'styledselect_pages'并且什么也没设置,一切正常!

我错过了什么吗?

编辑:我的CSS中的styledselect_pages是:

background: url(../img/table/select_number_rows.gif) left no-repeat;
border: none;
border-left: none;
color: #393939;
cursor: pointer;
display: block;
font-family: Arial;
font-size: 12px;
height: 20px;
line-height: 16px;
margin: 0px 0px 0px 0px;
padding: 4px 0 0 6px;
text-align: left;
width: 130px;

2 个答案:

答案 0 :(得分:2)

乍一看,此代码没有任何问题,因此我怀疑在&#39;捕获&#39; 事件的页面上有另一个JavaScript处于活动状态。

要检查是否是这种情况,请尝试不删除&#39;类&#39;选项,但(暂时)使用不同的名称,并检查它是否解决了问题,

例如:

'class' => 'styledselect_pages-DISABLED'

如果这样可以解决问题,并且您将某些库用于&#39; skin&#39; &#39; style&#39; )选择,很可能是整个选择&#39;隐藏在页面上,并且可见&#39;下拉不是实际的下拉,而是其他HTML元素模仿下拉。

这些元素可能不会触发“改变”。原始选择,因此不会调用您的函数。

答案 1 :(得分:0)

试试这个: 函数js

function    yourfunction(){
       alert("test");
    }

您的代码:

<form>
<?php
echo $this->Form->input(' ', array('class' => 'styledselect_pages', 'options' => array(10, 20, 40), 'empty' => 'Afficher par', 'onchange' => "yourfunction();"));
?>
</form>