0

我有一个代码允许您从选择框中选择选项。

每个选项应在已归档的 TEXTAREA 中打印不同的文本

我做错什么了?我应该改变什么?

<script src="jquery.js"></script>
<form name="form1">
    <fieldset name="Group1">
        <legend>Group box</legend>Center Title:
        <select name="ctrTitles" id="ctrTitles">
            <option value="1">Corp 1</option>
            <option value="2">Shamrock Gold</option>
            <option value="3">Hensin Way</option>
        </select>
        <br />
        <br />
        Address 1:
        <textarea name="TextArea1" id="TextArea1" cols="20" rows="2"></textarea>
        <br />
    </fieldset>
</form>
<script>
    var centerLocations = new Array({
        text1: 'some text1'
    }, {
        text2: 'some text2'
    }, {
        text3: 'some text3'
    });

    $('#ctrTitles').change(function() {
        address = $(this).val()
        val = $(":selected", this).index();
        $("#TextArea1").val(centerLocations["text" + address]);

    });
</script>
4

1 回答 1

3

使用您访问值的方式,您应该从数组更改为对象,因为您正在尝试访问具有属性名称的数组,而该属性名称不起作用,您只能在数组上使用索引,但您可以在通过做一个对象centerLocations["text" + address]

var centerLocations = {
    text1: 'some text1',
    text2: 'some text2',
    text3: 'some text3'
};

小提琴

使用数组或对象可以做到的 2 种方法。

使用数组(仅当您的选项索引与数组项索引匹配时)

var centerLocations = [
  'some text1' //you can even get rid of text1, text2 etc..
,  'some text2'
, 'some text3'
 ];

$('#ctrTitles').change(function () {
    $("#TextArea1").val(centerLocations[this.selectedIndex]);

   //with your original structure you would do
   //$("#TextArea1").val(centerLocations[this.selectedIndex]['text'+this.value]);

}).change();

演示

使用对象

var centerLocations = {
    text1: 'some text1',
    text2: 'some text2',
    text3: 'some text3'
};

$('#ctrTitles').change(function () {
    $("#TextArea1").val(centerLocations["text" + this.value]);
}).change();

演示

于 2013-07-11T21:38:25.157 回答