![](/img/trans.png)
[英]How to remove an item from a DropDownList basing on the item selected in another DropDownList in ASP MVC and using Javascript
[英]How to remove an item in DropDownList in ASP MVC using JavaScript
我正在使用C#和SQL Server 2005开发ASP .Net MVC 3应用程序。
在视图中,我有一个DropDownList,一个按钮。
如何为每次单击按钮从DropDownList中删除一个项目。
我尝试使用javascript,但是我认为这不起作用,因为当我单击按钮时,什么也没有发生。
这是代码:
<%:Html.Label("Poste :")%>
<%:Html.DropDownListFor(
model => model.SelectedPoste,
Model.PostesItems,
new { @id = "poste" })%>
<div>
<input type="submit"
value="Enregistrer"
id="btnSave"
onclick="remove()" />
</div>
<script type="text/javascript">
function remove() {
var rm = document.getElementById('btnSave');
var poste = document.getElementById('poste');
poste.removeItem();
}
</script>
使用原始JavaScript,您可以执行以下操作:
<script type="text/javascript">
function removeOption() {
var posteElement = document.getElementById('poste');
var currentIndex = posteElement.selectedIndex;
posteElement.removeChild(posteElement[currentIndex]);
return false;
}
</script>
这就是您所需要的。 还要确保将函数重命名为remove()
以外的任何其他名称:
<input type="submit"
value="Enregistrer"
id="btnSave"
onclick="removeOption()" />
看看这个(不是很好的inline-fiddle )。
但是,我强烈建议至少研究一下诸如jquery之类的库(这比使用vanilla.js容易得多)。 查看Andre的答案。
生成的HTML将为select元素提供ID“ SelectedPoste”,而不是您尝试设置的ID“ poste”。
使用remove
删除项目。
将您的JavaScript更改为:
var poste = document.getElementById('SelectedPoste');
poste.remove(poste.selectedIndex);
编辑:选择生成的HTML将是:
<select id="poste" name="SelectedPoste">...</select>
这两行中的任何一条都将获得该元素:
var poste = document.getElementById('poste');
要么
var poste = document.getElementById('SelectedPoste');
(IE10中的最新情况)
然后,要从列表中删除所选项目,请执行以下操作:
poste.remove(poste.selectedIndex);
这不会删除按钮:)
编辑2:像Dimitar的答案一样,您需要将函数名称从remove
更改为其他名称。
完成此操作后,以上代码将在IE和Chrome中运行。
使用jQuery
<select id="poste">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<br />
<input type="button" id="btnSave" value="Remove current item" />
<script type="text/javascript">
$(function () {
$('#btnSave').click(function () {
$('#poste option:selected').remove();
return false;
});
});
</script>
编辑 :使用jQuery绑定click事件
尝试这个:
$("#poste option[value='X']").each(function() {
$(this).remove();
});
或更简洁地说,这也将起作用:
$("#poste option[value='X']").remove();
例:
$("#btnSave").click(function(){
$("#poste option[value='X']").remove();
});
记住要使用JQuery :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.