我遇到了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;
答案 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>