我有2个下拉菜单的形式。 所述第一滤波器的第二个。 因此,当选择从第一下拉制成我需要回发到控制器以重新填充所述第二下拉。 由于第二下拉是必需字段,我得到验证每个I从第一个下拉的AutoPostBack时间触发。 我使用JS做这个“自动回”。
<script type='text/javascript'>
$('#StdThemePropertyId').change(function () {
$(this).parents('form').submit();
});
</script>
什么是推荐的方法来解决这个请。
谢谢。
在这种情况下,您的JSON格式应该是这样的:
调节器
public ActionResult YourActionMethod(int id)
{
return Json(new {
yourTitle="AAA",
yourValue="BBB"
});
}
JS
<script type="text/javascript">
$('#StdThemePropertyId').change(
$.getJSON("../YourActionMethod", function(data){
$.each(data, function(yourTitle, yourValue) {
$('#yourDropDownList').append(
$('<option></option>').val(yourTitle).html(yourValue)
);
});
});
});
</script>
如果这可以帮助您,标记为正确的!
你应该尝试使用AJAX,这可能有助于。
<script type="text/javascript">
$('#StdThemePropertyId').change(
$.ajax({
url: 'url.php',
success: function(data) {
$('#StdThemePropertyId').html(data);
}
});
}
});
</script>
“数据”是您的返回值,它在url.php被解析之后。 希望这可以帮助。 :)
你应该有这样的事情:
控制器:
public ActionResult YourActionMethod(int id)
{
return Json(new {foo="AAA", bar="BBB"});
}
使用Javascript:
<script type="text/javascript">
$('#StdThemePropertyId').change(
$.getJSON("../YourActionMethod", {
id: someId
}, function(data) {
alert(data.foo);
alert(data.bar);
//here fill in your dropdownlist
});
}
});
</script>'
希望能帮助到你!
你的问题是提交于平变化函数形式。 自动验证表单如果我正确
你不应该回传你的整个形式。 你应该做一个AJAX调用来读取值和填充第二下拉列表。 它会解决你的问题。