我遇到了一个有趣的小问题,可能只是我很傻.
我有一个看起来有点像这样的选择框:
<select id="dom_" name="dom_">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
...
Run Code Online (Sandbox Code Playgroud)
选项代表一个月中的几天,最多可达31天.
现在,当加载一个带有信息的表单(用于编辑)时,我试图选择一个默认值,但我无法让它工作得很好.
我尝试使用我在以前的一些SO问题中找到的这个片段:
$("#dom_ option[value$='" + 2 + "']").attr('selected', true);
Run Code Online (Sandbox Code Playgroud)
此行运行并将第二个选项设置为选中,但它也会将其他2X或X2选项设置为已选中.例如,12和22也将被设置为选中.
但是,如果我使用这个:
$("#dom_ option").each(function()
{
if ($(this).val() == 2)
{
$(this).attr('selected', true);
}
else
{
$(this).attr('selected', false);
}
});
Run Code Online (Sandbox Code Playgroud)
然后将选择正确的选项,但SELECT不会更新该框.
我必须手动调用$("#dom_").val(2);后记来更新该框.
所以,我的问题是,为什么第一个选项不起作用,为什么第二个选项不能自动刷新?
另外,SELECT通过对象$("#dom_")和调用.val它与选择和设置selected为true 之间的区别究竟是什么?这两个都发回相同的数据POST还是GET数据?
这是一个有希望证明这一点的jsFiddle.
如果它有帮助,我使用JQuery 1.6.4但我可以在jsFiddle中的一些较新版本上重现相同的问题.
如果这个问题太简单,我道歉.在JavaScript和JQuery方面,我仍然是一个业余爱好者.
您正在使用带有($=)的结尾,而只是使用value=仅与您想要的值完全匹配的结尾.
$("#dom_ option[value='" + 2 + "']").attr('selected', true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6696 次 |
| 最近记录: |