2017-09-22 24 views
1

我试图禁用页面上具有特定值的所有选择框中的所有选项。使用特定值禁用页面上的所有选择选项 - Javascript

如果有5个选择框,每个有4个选项。就像这样:

<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

我想禁用与整个页面上的价值3所有选项中,我如何实现这一目标?

$("select option["+previous+"]").attr('disabled', 'disabled'); 

但这禁用Select option与选定值。

任何帮助将不胜感激。

+0

'previous'的值来自哪里? – mcon

+1

'“选择选项[value ='”+ previous +'']“'? – TryingToImprove

+0

@Satpal建议'$(“select option [value =”+ previous +“]”)。prop('disabled',true);' – mplungjan

回答

2

看起来像你传递的任何东西都被视为内部选择的索引。尝试值属性选择器

$("select option[value ="+previous+"]").attr('disabled', 'disabled'); 
+1

'prop(“select”) .filter(function(i,e){return $(e).val()== previous}) 。禁用“,true)' – mplungjan

1

你可以使用jquery中的value属性来实现它。

$("select option[value='3']").attr('disabled', 'disabled'); 
1

在这里,你有一个解决方案去使用ES6模板文字

var previous = 3; 
 
$(`select option[value=${previous}]`).prop('disabled', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 

 
<select> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 

 
<select> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select>

希望这会帮助你。

+1

ES6在我看来是过度杀伤 – mplungjan

相关问题