使用HTML表单预先输入 - 根据选择自动填充下一个单元格

时间:2012-06-12 15:41:37

标签: javascript jquery html

我正在使用带有HTML表单的Twitter bootstrap-typeahead插件:

http://twitter.github.com/bootstrap/javascript.html#typeahead

运作良好。我希望行中的下一个单元格(即选择菜单)根据用户在前一单元格中的选择自动选择一个选项。这是一个例子:

http://jsfiddle.net/WNpy5/

如果用户输入“New South Wales”状态,我希望将Country设置为“Australia”,但可以选择使用选择菜单进行更改。同样,如果用户选择“加利福尼亚”,我希望将国家/地区设置为“美国”。

我可以很容易地扩展用于打印头状态字段的值数组,以包含相应的国家/地区值(虽然不确定格式)并且不确定这是否可行以及如何将它们组合在一起?

2 个答案:

答案 0 :(得分:1)

对于具有各自状态的国家/地区,您需要一个javascript对象数组:

var countries = [{ name: 'USA',
                   states: ['Alabama', 'Alaska']},
                 { name: 'Australia',
                   states: ['New South Wales', 'Queensland']}]; // You can add rest of the states here

DEMO: http://jsfiddle.net/WNpy5/1/

在演示中,当进入状态并且焦点远离文本框时,它会自动选择国家/地区。

答案 1 :(得分:1)

默认情况下,typeahead插件只接受一个字符串列表。我创建了一个扩展,它接受一组JSON对象,我相信这是你正在寻找的功能。

来源在这里:https://github.com/tcrosen/twitter-bootstrap-typeahead

您案例的一个例子是:

var states = [{ state: 'NY', country: 'USA'}, 
              { state: 'Ontario', country: 'Canada'}, 
              { state: 'Petoria', country: 'Petoria'}];

$('#myTextBox').typeahead({
    source: states,
    display: 'state',
    val: 'country',
    itemSelected: function(item, val, text) {
        // val = name of the country
        // text = name of the provice
        $('#Country').val(val);
    }
});