jquery:select选项所选属性在更改时未更改
我的问题是我有一个dropdownlist,它的SelectedValue在回发时没有传递给ASP.NET。在从页面中提取jQuery更改处理程序并隔离一个选项的选择之后,我可以看到即使THO“:选择”给了我新选择的选项,它不粘,所以空白选项值被传递回服务器。 这个JSFIDLE重现了这个问题。从列表中选择一个选项,然后单击go并查看警报框中显示的html,以了解我所关注的内容 以下是一个独立的页面版本:jquery:select选项所选属性在更改时未更改,jquery,postback,option,selected,Jquery,Postback,Option,Selected,我的问题是我有一个dropdownlist,它的SelectedValue在回发时没有传递给ASP.NET。在从页面中提取jQuery更改处理程序并隔离一个选项的选择之后,我可以看到即使THO“:选择”给了我新选择的选项,它不粘,所以空白选项值被传递回服务器。 这个JSFIDLE重现了这个问题。从列表中选择一个选项,然后单击go并查看警报框中显示的html,以了解我所关注的内容 以下是一个独立的页面版本: <script type="text/javascript" src="htt
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#ddl').on('change', function (e) {
$('.sv').text($(this).find(":selected").attr('value'));
});
$('#go').click(function() { alert($('#ddl').html()) });
});
</script>
<select name="ddl" id="ddl">
<option selected="selected" value="">-- Choose --</option>
<option value="1">Degree</option>
<option value="2">HND</option>
<option value="16">HNC</option>
</select>
<div><span>SelectedValue: </span><span class="sv"></span></div>
<div><input id="go" type="button" value="go"/></div>
jquery中的.html将返回您初始化的任何数据,因为它使用浏览器的
innerHTML
属性,但如果您尝试提交数据,则不会出现问题。因此,不要担心它会在更改时在DOM中更改,下面是一个证明:
<form class='test'>
<select name="ddl" id="ddl">
<option selected="selected" value="">-- Choose --</option>
<option value="1">Degree</option>
<option value="2">HND</option>
<option value="16">HNC</option>
</select>
$(function () {
$('#ddl').on('change', function (e) {
$('.sv').text($(this).find(":selected").attr('value'));
});
$('#go').click(function () {
alert($('#ddl').html())
});
$('.test').submit(function(e){
e.preventDefault();
console.log($(this).serializeArray());
});
});
将您的代码放在代码的后面。好的,谢谢,那么我如何找出为什么在表单发回时,DropDownList.SelectedValue=“”?发回是什么意思?这是一个ASP.NET WebForms应用程序。dropdownlist在服务器端由数据库填充。选择选项后,单击按钮会导致回发。此时,所选值已返回到“”。但没关系,我发现了问题。从Page_load调用了一个函数,该函数显式设置SelectedValue=“”。我只是没想到马上去找它。@twelveFunKeys-太好了,希望我能帮你。当然,非常感谢你。尽管这个问题实际上很愚蠢,但我在路上学到了很多。干杯
<form class='test'>
<select name="ddl" id="ddl">
<option selected="selected" value="">-- Choose --</option>
<option value="1">Degree</option>
<option value="2">HND</option>
<option value="16">HNC</option>
</select>
$(function () {
$('#ddl').on('change', function (e) {
$('.sv').text($(this).find(":selected").attr('value'));
});
$('#go').click(function () {
alert($('#ddl').html())
});
$('.test').submit(function(e){
e.preventDefault();
console.log($(this).serializeArray());
});
});
0: Object
name: "ddl"
value: "2" // I selected your second option while testing