2

我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。

我也在使用实体框架和代码优先方法。

在一个视图中,我有一个 DropDownList、一个按钮和一个 TextArea。

单击按钮时,如何使用 DropDownlist 的值填充面板。

我尝试使用 javascript,但我认为这不起作用,因为当我单击按钮时,什么也没有发生。

这是代码:

<%:Html.Label("Poste Suivant :")%><%: Html.DropDownListFor(model => model.PosteSuivantSelected, Model.PostesItems, new { @id = "dd" })%>
<input type="button" value="Ajouter" id="add"  onclick="addtext()"/>
<textarea ID="ta" cols="10" name="S1" rows="2" ></textarea>

<script language="javascript" type="text/javascript">
        function addtext() {

            var dd = document.getElementById('dd');
            var ta = document.getElementById('ta');
            var add = document.getElementById('add');
            if (add.onkeypress) {
                ta.value = dd.selectedvalue;
            }

        }
</script>
4

2 回答 2

1

用这个:

ta.innerText = dd.options[dd.selectedIndex].innerText;
于 2013-05-22T13:05:29.603 回答
1

只要您的 .net 代码呈现如下所示的选择列表,问题就出在您的 javascript 中。您需要使用选定的索引来获取选项。我也不确定你为什么要检查它们是否在添加时存在按键功能。

<select id="dd"><option>a</option><option>b</option></select>
<input type="button" value="Ajouter" id="add"  onclick="addtext()"/>
<textarea ID="ta" cols="10" name="S1" rows="2" ></textarea>

<script language="javascript" type="text/javascript">
        function addtext() {

            var dd = document.getElementById('dd');
            var ta = document.getElementById('ta');
            var add = document.getElementById('add');
            //if (add.onkeypress) {
                ta.value = dd.options[dd.selectedIndex].value;
            //}

        }
</script>

如果您想从选择菜单中添加选项而不是替换,那么您的函数应如下所示:

        function addtext() {

            var dd = document.getElementById('dd');
            var ta = document.getElementById('ta');
            var add = document.getElementById('add');
            //if (add.onkeypress) {
                ta.value = ta.value + dd.options[dd.selectedIndex].value;
            //}

        }

如果您只想要 textarea 中的项目,我会将选定的值存储在数组中,然后用数组的连接值替换该值。

<script language="javascript" type="text/javascript">
        var storedValues = [];
        function addtext() {

            var dd = document.getElementById('dd');
            var ta = document.getElementById('ta');
            var add = document.getElementById('add');
            //if (add.onkeypress) {
            var selectedValue = dd.options[dd.selectedIndex].value;
            if(storedValues.indexOf(selectedValue) === -1){
                storedValues.push(selectedValue)
                ta.value = storedValues.join('')
            }
            //}

        }
</script>
于 2013-05-22T13:07:54.067 回答