2012-04-16 40 views
0

通過jquery完成此操作的最佳方式是什麼?JQUERY - 如何編寫jquery函數來根據選擇的下拉選項填充textarea字段w /地址

我有一個dropbox [中心標題],它有一個位置名稱/標題。我需要將地址與名稱相關聯,然後在更改保管箱後,我需要將地址填充到兩個文本框中。

有一堆中心及其相應的地址,所以我想我想把這個在外部的js文件中。

這裏是我的html,我只是無法讓jquery清晰的在我腦海中。

<fieldset name="Group1"> 
       <legend>Group box</legend> 
       Center Title:<select name="ctrTitles" id="ctrTitles"> 
       <option value="Corp 1">Corp 1</option> 
       <option value="Shamrock Gold">Shamrock Gold</option> 
       <option value="Hensin Way">Hensin Way</option> 
      </select><br /><br /> 
      Address 1: <textarea name="TextArea1" id="TextArea1" cols="20" rows="2"></textarea><br /><br /> 
      Address 2: <textarea name="TextArea2" id="TextArea2"cols="20" rows="2"></textarea> 
      </fieldset> 

在這裏查看我的jsfiddle:http://jsfiddle.net/justmelat/WcXpk/

+0

你的意思是這個functionali TY? http://jsfiddle.net/WcXpk/5/ – undefined 2012-04-16 16:25:18

回答

1
$('#ctrTitles').change(function() { 
     var centreName = $(this).val(); 

    var address = ''; 
    for (var i = 0; i < centerLocations.length; ++i) { 
    if (centerLocations[i].value == centreName) { 
    address = centerLocations[i].address; 
break; 
    } 

    } 

     $("#TextArea1, #TextArea2").val(address);  
    });​ 
+0

Beyond Excellent - 如果你知道我原來有多少代碼:(謝謝你太多了!) – user1176783 2012-04-16 16:24:31

3

這樣的事情?

$('#ctrTitles').change(function() { 
    address = $(this).val(); 
    $("#TextArea1, #TextArea2").val(address);  
}); 

http://jsfiddle.net/WcXpk/3/

+0

這將兩個地址字段更新爲中心的名稱,而不是數組中的地址。 – 2012-04-16 15:58:57

+0

好的,我會修改它。 – undefined 2012-04-16 16:01:50

0

我猜你想在adress1 textarea的 http://jsfiddle.net/WcXpk/4/

+0

實際上,「地址」是「地址1」和「地址2」文本框中的內容,一旦「值」匹配從下拉列表中選擇的內容, – user1176783 2012-04-16 16:19:58

+0

爲什麼您需要在兩個文本區中都使用相同的地址? – chepe263 2012-04-16 16:39:39

+0

客戶端有兩個框出現在實際web表單的不同區域 – user1176783 2012-04-17 02:09:30

1
$('select#ctrTitles').change(function() { 
    var index = $(':selected', this).index(); 
    $("#TextArea1, #TextArea2").val(centerLocations[index]['address']); // if your address array sync with `<select><option>` order 
}); 

這裏的價值是完整的代碼:

var centerLocations = new Array(
    {value : 'Corp 1', address : 'Address 1'}, 
    {value : 'Shamrock Gold', address : 'Shamrock Gold Address 2'}, 
    {value : 'Hensin Way', address : 'Hensin Way Address 3'} 
); 

function findAddress(value) { 
    var address = ''; 
    $.each(centerLocations, function() { 
     if(new RegExp(this.value, 'ig').test(value)) { 
      address = this.address; 
     } 
    }); 
    return address; 
} 
$('select#ctrTitles').change(function() { 
    var index = $(':selected', this).index(), 
     val = $(this).val(); 
    $("#TextArea1, #TextArea2").val(findAddress(val)); 
}); 
+0

這與我所做的一樣,但更簡單 – chepe263 2012-04-16 16:13:58

+0

@ chepe263我不知道你做了什麼 – thecodeparadox 2012-04-16 16:19:57

相關問題