使用Jquery从Textbox中添加Listbox中的项目

我被卡在某处使用jquery从文本框中追加列表框。

这是我的jquery

$("#btnAddSvc").click(function () { var svc = $("#").val(); //Its Let you know the textbox's value svc.appendTo("#"); }); 

我正在使用asp.net(c#)来开发我的代码

 >" Font-Size="Medium" />  

有人可以帮忙,因为我无法获得列表框中的值。

"#<%=lstSvcName.ClientID %>"缺少jQuery选择器$(),因此您将获得lstSvcName而不是object id

我还更改了append语句,因为它没有正确的语法。

 "#<%=lstSvcName.ClientID %>" 

将会

 $("#<%=lstSvcName.ClientID %>") 

你的代码将成为

 $("#<%= btnAddSvc.ClientID %>").click(function () { var svc = $("#<%= txtServiceName.ClientID %>").val(); //Its Let you know the textbox's value $("#<%=lstSvcName.ClientID %>").append(''); return false; }); 

编辑[OP请求ListBox中的唯一项目和清除TextBox的更多function]

 $("#<%= btnAddSvc.ClientID %>").click(function () { var txt = $("#<%= txtServiceName.ClientID %>"); var svc = $(txt).val(); //Its Let you know the textbox's value var lst = $("#<%=lstSvcName.ClientID %>"); var options = $("#<%=lstSvcName.ClientID %> option"); var alreadyExist = false; $(options).each(function () { if ($(this).val() == svc) { alert("Item alread exists"); alreadyExist = true; return; } txt.val(""); // alert($(this).val()); }); if(!alreadyExist) $(lst).append(''); return false; }); 

尝试这样的事情。 这可能对你有所帮助。 为方便起见,更改返回值。

  $('#<%= btnAddSvc.ClientID %>').click(function () { $textbox = $('#<%= txtServiceName.ClientID %>'); $listbox = $('#<%= lstSvcName.ClientID %>'); $listbox.append($('').attr('value', $textbox.val()).text($textbox.val())); return false; }); 

你可以使用jquery操作DOM但是…… 现在有一种更优雅的方式来实现它:一种面向对象的方式(使用MVVM – 模型视图ViewModel),使用knockoutjs

Knockoutjs Nuget Package

您只需将list data-bind="options: elements"添加到列表中就可以创建绑定到列表,并且始终使用对象,从不使用DOM元素,在此示例中我有一个字符串数组,但您可以创建自定义对象和使用语法中的一点变化来绑定它们

这样做的方法是:

      

这是输出:

在此处输入图像描述