1

我有以下代码,如下所示:http://jsfiddle.net/rBd53/12/

一个文件中的 HTML/JS 代码:

<script type="text/javascript">
    var textBlocks = new Array(
        'Select from the list to change this box',
        'Text block two',
        'Text block three'); 

    function changeText(form) {
        var ind = form.qwer.selectedIndex;
        document.getElementById("display").innerHTML=textBlocks[ind]; 
    }
</script>

<form>
    <select name="qwer" onChange="changeText(this.form);">
        <option value="0">Select</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    <br>
    <div id="display">Select from the list to change this box</div> 
</form>

如何更改此代码以使其在 CakePHP 1.3 中正常工作?我在下面创建了一个test_js.js文件app/webroot/js并将该<script>...</script>部分放在那里。我也有echo $scripts_for_layout;app/views/layouts/default.ctp.<head>

我猜我的元素(.ctp)文件中的东西不正确。出现下拉菜单和下面的文本,但文本不会根据所选选项动态更改。我做了以下。

<?php echo $this->Html->script('test_js', array('inline'=>false)); ?>
<form>
<select name="qwer" onChange="changeText(this.form);">
    <option value="0">Select</option>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
<br>
<div id="display">Select from the list to change this box</div> 
</form>
4

2 回答 2

1

我相信您调用辅助方法是错误的,它只需要 2 个参数:

echo $this->Html->script('test_js', array('inline'=>false));

此外,如果这不起作用,那么很高兴确切知道您收到的是哪个警告......

于 2013-02-06T20:13:53.083 回答
0

我的问题似乎是兑现问题。它按原样工作,这就是我所拥有的。

app\webroot\js\test_js.js

var textBlocks = new Array(
    'Select from the list to change this box',
    'Text block two',
    'Text block three'); 

function changeText(form) {
    var ind = form.qwer.selectedIndex;
    document.getElementById("display").innerHTML=textBlocks[ind]; 
}

在视图元素页面 (.ctp) 中:

<?php echo $this->Html->script('test_js', array('inline'=>false)); ?>
<form>
    <select name="qwer" onChange="changeText(this.form);">
        <option value="0">Select</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
<br>
<div id="display">Select from the list to change this box</div> 
</form>
于 2013-02-07T16:15:43.180 回答