jQuery的值始终为空
我已经做过很多次了,这很容易,但是这里有点不对劲,我就是看不出问题所在。从该下拉列表中进行选择时,.值始终为空。我知道得更清楚。但我看不出问题所在。有人看到这段代码有问题吗 在my _Layout.cshtml中,我调用了一个返回部分视图的控制器操作:jQuery的值始终为空,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我已经做过很多次了,这很容易,但是这里有点不对劲,我就是看不出问题所在。从该下拉列表中进行选择时,.值始终为空。我知道得更清楚。但我看不出问题所在。有人看到这段代码有问题吗 在my _Layout.cshtml中,我调用了一个返回部分视图的控制器操作: @{Html.RenderAction("LanguageListPartial", "Account");} 部分观点: @Html.DropDownListFor( x => x.SelectedLanguage,
@{Html.RenderAction("LanguageListPartial", "Account");}
部分观点:
@Html.DropDownListFor(
x => x.SelectedLanguage,
Model.Languages,
new { @class = "form-control }
)
下拉菜单将显示“精细”:
HTML:
jQuery在更改时调用:
试试这个:
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$('#SelectedLanguage').on('change', function () {
var a = $(this).val();
$('#test').load("/Account/TestPartial/" + a);
return false;
});
});
});
</script>
还有一个建议,试试ajax asyn更新
<script type="text/javascript">
$(function () {
$('#SelectedLanguage').on('change', function () {
var a = $(this).val();
$.get("~/Account/TestPartial/"+a, function(data){
$("#placeholder").html(data);// update existing div
}):
});
});
</script>
使用.val而不是.valuesHabeway,起初我尝试了.val.:然后确保你有一个id为test的元素,不管是谁,否决票都很奇怪。似乎是一个合法的问题-代码对我来说似乎没问题,但只是想看看是否有其他人发现了问题。在HTML结构中,您将.ready函数放在哪里?这可能是其他地方的问题吗?一切正常,无法测试部分负载,但我从您的选择列表中获得正确的值,运行小提琴并检查您的控制台:我只是在学习MVC,所以可能存在一些异常。我会通过MVC社区。谢谢你,马克。select在局部视图中呈现,脚本在主布局中,但偶数激发,因此我不明白为什么该值不可用。还有一件事,可以尝试使用ajax异步来呈现局部。。我再给你一个答案……我自己刚开始和mvc合作。是的,你试了一下,希望你的参与能让我开怀大笑。我非常感谢你的帮助,至少从你的回答和评论中学到了很多东西;是的,这些评论毫无用处,所以我把它们清理干净了。记录在案,如果答案是不同的,那么留下多个答案没有什么错。通过这段代码跟踪,仍然是a=null。我认为@sahbeewah已经开始关注.ready.的位置,这不是问题所在,但是您没有在DOM ready中捕捉到DOM ready$document.readyfunction{与$function{完全相同请参见:
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$('#SelectedLanguage').on('change', function () {
var a = $(this).val();
$('#test').load("/Account/TestPartial/" + a);
return false;
});
});
});
</script>
<script type="text/javascript">
$(function () {
$('#SelectedLanguage').on('change', function () {
var a = $(this).val();
$.get("~/Account/TestPartial/"+a, function(data){
$("#placeholder").html(data);// update existing div
}):
});
});
</script>