2016-07-25 115 views
-2

我想通过所有的页面上,如果选择输入回路选择的值是没有一定的选项,然后将该值设置为选择的jQuery遍历选择和设置选择的选项

我有一些选择

<select name="select1"> 
    <option value="1">One</option> 
    <option value="2" selected>Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
    <option value="5">Five</option> 
</select> 

<select name="select2"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
    <option value="5">Five</option> 
</select> 

<select name="select3"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
    <option value="5">Five</option> 
</select> 

我循环通过他们像这样,但我无法弄清楚如何将选中的属性设置为,如果它尚未被选中

$('select').each(function() { 

    var selected = $(this).find(":selected"); 

    if (selected.val() != 2) { 
     // do some stuff 

    } 

} 

编辑选项“2”:

我应详细说明。如果选择的输入值被改变,我附加一个字符串,例如'更新'为输入值,因为每个输入都将发布到数据库中。理想情况下我只能这样做对已经改变了的效率输入

所以我想将所有选择不已经有选项2选择要选择有“2-更新”的值输入

感谢所有的答案至今

+2

它没关系,如果它已被选中 - 只需重新设置,jQuery将为您处理它。如果你将它们全部设置为2,那么你甚至不需要循环,只需要'$('select')。val('2')' –

+1

'$('select')。val('2 ');' –

+0

,或者你可能想要的东西'$(' 选择:不是(:有(:)选择) ')VAL(' 2' );' –

回答

1

您可以将所需的选项值传递给.val()方法同时配置选择来选择所需的选项元素:

$('select').val('2'); 

工作段:

$('select').val('2');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<select name="select1"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3" selected>Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select> 
 

 
<select name="select2"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3">Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select> 
 

 
<select name="select3"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3">Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select>

+0

当我改变一个选择输入我追加一个字符串“ - 更新”的价值,有没有什么办法,我可以设置尚未值全部选择= 2值2和添加此字符串给他们? '函数set_updated(){ 变种inputname = $(本).find( “:选择了”)[0]。价值; 如果(!inputname.match(/更新/ I)){ $(本).find( “:选择”)。val(inputname +“-updated”); } }' – jdoe

+0

@jdoe:没有得到你。你能否详细说明.. –

+0

不用担心。在这些选择输入的表单操作中,我想循环并执行一些操作(Web服务/数据库调用),这是我在单独的PHP文件中工作的,但是我只想在输入已经更新。因此,当一个选择被改变时,我添加了一个字符串'-updated'作为选项值,像这样 - '' – jdoe

0

查找与价值等于2的所有选项,并选择他们:

$('select').each(function() { 
 
    $(this).find('option[value="2"]').prop('selected', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<select name="select1"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3" selected>Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select> 
 

 
<select name="select2"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3">Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select> 
 

 
<select name="select3"> 
 
    <option value="1">One</option> 
 
    <option value="2">Two</option> 
 
    <option value="3">Three</option> 
 
    <option value="4">Four</option> 
 
    <option value="5">Five</option> 
 
</select>

0

您可以探索这个jQuery对象的value关键

$('select').each(function() { 
    var selected = $(this)[0].value; 
    console.log(selected) 
    if (selected != 2) { 
     alert("Not 2") 

    } 
}) 

JSFIDDLE

+1

'$(this)[0] .value;'可以替换为'this.value' – Rajesh