Javascript 如何使用预选值初始化下拉列表(),然后对其进行更改?

Javascript 如何使用预选值初始化下拉列表(),然后对其进行更改?,javascript,jquery,html,dom,select,Javascript,Jquery,Html,Dom,Select,我有一个网格,每一行都有下拉列表,我需要从DB渲染它的状态。 我已经定义了下拉列表,其中指定了selected选项,用于从DB中预选值 <select id='selectId'> <option value='1'>Option 1</option> <option value='2' selected='selected'>Option 2</option> <option value='3'>Option 3</

我有一个网格,每一行都有下拉列表,我需要从DB渲染它的状态。 我已经定义了下拉列表,其中指定了selected选项,用于从DB中预选值

<select id='selectId'>
<option value='1'>Option 1</option>
<option value='2' selected='selected'>Option 2</option>
<option value='3'>Option 3</option>
</select>​
问题在于,当我更改浏览器中定义的下拉列表的值时,它会在UI上更改,但选定的属性不会移动并保持不变。 因此,当我调用$selectId.val时,我会得到旧的值


初始化下拉控件,然后在浏览器或jQuery中自由更改其值的适当方法是什么?

应该可以正常工作。可能是您的设置不正确

您应该将选项的值传递给val方法以选择它

例如$'selectId'.val'1';将第一个选项设置为选中,然后调用$'selectId'。val将为您提供1而不是2


下面是一个工作示例,它应该可以正常工作。可能是您的设置不正确

您应该将选项的值传递给val方法以选择它

例如$'selectId'.val'1';将第一个选项设置为选中,然后调用$'selectId'。val将为您提供1而不是2


以下是工作示例

您正在哪个浏览器中尝试此操作?您的代码在我看来很好,似乎正在使用中。

您正在哪个浏览器中尝试此操作?您的代码在我看来很好,并且似乎正在工作。

您可以获得所选选项的val,而不是select

$('select#selectId option:selected').val(); 

文档:

您可以获取所选选项的val,而不是select

$('select#selectId option:selected').val(); 

文档:

请使用此代码

$('#selectId option:selected').val(); 

请改用此代码

$('#selectId option:selected').val(); 

这似乎在Ubuntu上运行良好:

HTML

如果选择这些选项,您将看到它将打印更改的版本。工作示例:


希望这能有所帮助。

这似乎在Ubuntu上运行良好:

HTML

如果选择这些选项,您将看到它将打印更改的版本。工作示例:


希望这能有所帮助。

为了澄清,您的问题是,当您使用上述代码时,将option value='2'标记为selected会将选项2设置为默认选择,而您不能选择任何其他选项。当您说手动时,您的意思是通过jQuery代码还是不通过jQuery代码?@Jonathan Eckman,我现在明白了。您能给我一个建议,如何从html而不是js中预选下拉列表值吗?也许我必须使用上面的代码,并在网格渲染后从所有下拉列表中删除所有选定值?icyrock.com,我是说在浏览器中。不是JSJQ。你能发布一个JSFIDLE,其中至少包含表单和div吗?我有一个问题,我想你在过去描述过,但我无法重新创建它来找出它是如何修复的。要澄清的是,你的问题是,当你使用上述代码时,将option value='2'标记为selected将默认设置为selected,而你无法选择任何其他选项。当你说手动时,“你是说是否通过jQuery代码?”乔纳森·埃克曼,我现在明白了。您能给我一个建议,如何从html而不是js中预选下拉列表值吗?也许我必须使用上面的代码,并在网格渲染后从所有下拉列表中删除所有选定值?icyrock.com,我是说在浏览器中。不是JSJQ。你能发布一个JSFIDLE,其中至少包含表单和div吗?我曾经遇到过我认为你在过去描述过的问题,但是我无法重新创建它来找出它是如何修复的。