2014-01-09 129 views
0

我想一起攻击几个不同的jQuery功能来帮助我完成我正在进行的一个项目。需要帮助,结合jQuery的功能

第一部分似乎工作(填充两个输入文本框,但我无法用我提供的数组填充第二个选择下拉列表。我确定这是简单的但是对jquery来说是新的我不能相当看着办吧。

编辑

我需要拆分的选项第一选择下拉的值(由“_”分隔),并把这些双方的显示。这在文本框中对我的页面功能很重要。

这是我的h TML

<form action="/revenue_lines/lock" id="lockLockForm" method="post" accept-charset="utf-8"> 
<input type="text" id="RevenueLineDate1"> 
<input type="text" id="RevenueLineDate2"> 
<select id="selector"> 
    <option value="Data1_<Data1>">Sample1</option> 
    <option value="Data2_<Data2>">Sample2</option> 
</select> 
<select id="item"></select> 

这里是我的jQuery

$('#selector').on('change', function() { 
var val = this.value; 
var parts = val.split("_"); 
$('#RevenueLineDate1').val(parts[0]); 
$('#RevenueLineDate2').val(parts[1]); 
}); 

Sample1 = new Array('Top Story', 'Cases', 'News'); 
Sample2 = new Array('Top Story', 'Cases', 'News'); 

populateSelect(); 

$(function() { 

$('#selector').change(function() { 
    populateSelect(); 
}); 

}); 

function populateSelect() { 
selector = $('#selector').val(); 
$('#item').html(''); 

eval(selector).forEach(function (t) { 
    $('#item').append('<option>' + t + '</option>'); 
}); 
} 

这里是到jsfiddle我工作过的链接。

非常感谢提前!

+1

http://jsfiddle.net/deuq3/15/ –

+0

这很接近,但我仍然需要拆分选项的值(用“_”分隔),以便我可以填充两个文本框。对不起,我不明白我会编辑我的问题。 – cmill02s

回答

3

你快到了!

试试这个HTML代替:

<select id="selector"> 
    <option value="Sample1">Sample1</option> 
    <option value="Sample2">Sample2</option> 
</select> 

你.VAL()越来越选定<option>,而不是文本的价值属性。

编辑:

我从你的编辑看到原始值是对你很重要。在这种情况下,请将populateSelect中的.val()替换为.text(),您将得到我认为您想要的行为。

function populateSelect() { 
    selector = $('#selector').text(); 
    $('#item').html(''); 

    eval(selector).forEach(function (t) { 
     $('#item').append('<option>' + t + '</option>'); 
    }); 
} 

作为一个说明,我通常不会考虑使用可见文本这样一个很好的做法 - 它阻止你做这样的事情本地化的文本。一种替代方法是使用split()来关闭值的第一部分(Data1,Data2),并将其用作数组名称。然后,您可以自由更改显示的文本而不会中断您的功能。

+0

这就是它!非常感谢! – cmill02s