我是asp.net mvc的新开发者,甚至更新的使用jquery,所以这是我的问题:我有一些下拉列表,使用另一个下拉列表或文本框的数据,以及那些数据填充dinamically下拉用于另一个下拉,就像一个链,我的问题现在是下拉有时只有一个答案/选项,如果我尝试选择该选项,jquery不会激活$(“#anything”) .change()事件,'因为我只有一个选项,我如何处理它?</ p>
http://imageshack.us/photo/my-images/20/sinttulolp.jpg/
例如,我需要红色圆圈的数据来填充蓝色圆圈,但红色圆圈只有一个选项,如果我点击没有任何反应
代码:
$(document).ready(function(){
$("#tbClave1").autocomplete({
minLength: 1,
source: getClave1,
select: function(event, ui) {
updateClave2(ui.item.value);
}
});
$("#tbClave1").change(function() {
if ($("#tbClave1").val().length == 4) {
updateClave2($("#tbClave1").val());
}
});
$("#ddClave2").change(function() {
updateClave3($("#tbClave1").val(), $("#ddClave2").val());
updateNombre($("#tbClave1").val(), $("#ddClave2").val());
if ($("#ddTipoArticulo").val() == "A" ||
$("#ddTipoArticulo").val() == "B" ||
$("#ddTipoArticulo").val() == "L") {
updatePrecioA($("#tbClave1").val(), $("#ddClave2").val());
} else {
if ($("#ddTipoArticulo").val() == "N" ||
$("#ddTipoArticulo").val() == "H"){
updatePrecioB($("#tbClave1").val());
}
}
});
$("#ddClave3").change(function() {
updateClave4($("#tbClave1").val(), $("#ddClave2").val(), $("#ddClave3").val());
});
});
编辑:我如何填写其中一个下拉列表
的示例Jquery的
function updateClave2(cod){
var dd = document.getElementById("ddClave2");
dd.options.length = 0;
dd.options[0] = new Option("Espere...");
dd.selectedIndex = 0;
dd.disabled = true;
codigo = cod;
tipoArt = $("#ddTipoArticulo").val();
// Control de errores
$("#ddClave2").ajaxError(function(event, request, settings) {
dd.options[0] = new Option("No se Cargaron Datos");
});
// Obtenemos los datos...
$.ajax({
url: '/Home/GetClave2',
dataType: 'json',
data: { words: codigo, tipoArticulo: tipoArt },
success: function(data, textStatus, jqXHR) {
$.each(data, function(i, item) {
dd.options[i] = new Option(item["clave2"], item["clave2"]);
});
dd.disabled = false;
}
});
}
控制器
public ActionResult GetClave2(string words,string tipoArticulo){ 列出mySource = miConexion.Clave2(用户名,密码,单词,tipoArticulo); 返回Json(mySource); }
答案 0 :(得分:0)
正如Alex Mendez写的那样,在每个下拉列表中添加一个默认项目,其中包含“Select One”等文本,这似乎是最简单的答案。如果用户重新选择默认的“选择一个选项”,您还需要进行一些处理。要在.Net下拉列表中添加默认值,请尝试以下代码:
YourListID.Items.Insert(0, new ListItem("Select One", "Select One");
或:
<asp:DropDownList ID="YourListID" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="Select One" Value="Select One" Selected="true" />
</asp:DropDownList>
编辑(错过了MVC)
在MVC中,当你绑定你的初始ViewData时,一定要确保你的“选择一个”在liest中:
Dictionary<int, string> dictionaryList = DropDownListItems();
ViewData["ModelData"] = new SelectList(dictionaryList, "Key", "Value")