我遇到了一个有趣的小问题,可能只是我很傻。
我有一个看起来有点像这样的选择框:
<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>
...
这些选项代表一个月中的几天,最多 31 天。
现在,我试图在加载包含信息的表单(用于编辑)时选择一个默认值,但我无法让它正常工作。
我尝试使用我在之前的一些 SO 问题中找到的这个片段:
$("#dom_ option[value$='" + 2 + "']").attr('selected', true);
该行运行并将第二个选项设置为选中,但它也将其他 2X 或 X2 选项设置为选中。例如,12 和 22 也将设置为选中。
但是,如果我使用这个:
$("#dom_ option").each(function()
{
if ($(this).val() == 2)
{
$(this).attr('selected', true);
}
else
{
$(this).attr('selected', false);
}
});
然后将选择正确的选项,但SELECT
不会更新该框。
我必须手动调用$("#dom_").val(2);
后记来更新盒子。
所以,我的问题是,为什么第一个选项不起作用,为什么第二个不能自动刷新?
SELECT
另外,通过一个对象$("#dom_")
并调用.val
它与选择一个选项并将其设置selected
为 true之间到底有什么区别?这两个都发回相同的POST
还是GET
数据?
这是一个jsFiddle,希望能证明这一点。
如果有帮助,我使用的是 JQuery 1.6.4,但我可以在 jsFiddle 的一些较新版本上重现相同的问题。
如果这个问题太简单,我很抱歉。当谈到 JavaScript 和 JQuery 时,我仍然是个业余爱好者。