1

我有这个,

<select id="rid" style="border: 1px solid #ccc;" name="rid">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
    <option value="5">Option 5</option>
    <option value="6">Option 6</option>
</select>

我有触发事件的链接,

<a href="#">Disable Option 1</a><br />
<a href="#">Disable Option 2</a><br />
<a href="#">Disable Option 3</a>

现在,如果我单击Disable Option 1,这将从Option 1选择下拉列表中禁用。我在想,通过使用属性value,我可以指定要禁用哪些选项来禁用我将单击的链接,但我迷路了。如何仅使用该value属性禁用下拉列表中的任何选项?

4

4 回答 4

9

编辑:

例如,当单击禁用选项 1 时,它将禁用选项 1、4 和 5,当我单击禁用选项 2 时,它将禁用选项 2 和 3,有点像这样。

设置链接如下,

<a href="#" data-val="1,4,5">Disable Option 1</a><br />
<a href="#" data-val="2,3">Disable Option 2</a><br />
<a href="#" data-val="3">Disable Option 3</a>

并更改如下代码,

$('a').click (function () {
    var thisVal = $(this).data('val')+'';
    $('#rid option').filter(function () {            
        return $.inArray(this.value, thisVal.split(',')) >= 0;
    }).prop('disabled', true);
});

演示:http: //jsfiddle.net/vPhJc/1/


如果您设置如下链接,

<a href="#" data-val="1">Disable Option 1</a><br />
<a href="#" data-val="2">Disable Option 2</a><br />
<a href="#" data-val="3">Disable Option 3</a>

那么你就可以

$('a').click (function () {
    $('#rid option[value=' + $(this).data('val') + ']').prop('disabled', true);
});

演示:http: //jsfiddle.net/vPhJc/

于 2012-10-11T18:31:03.510 回答
2

请检查这个

HTML:

<a href="#">Disable Option <span>1</span></a><br />
<a href="#">Disable Option <span>2</span></a><br />
<a href="#">Disable Option <span>3</span></a>

代码:

$("a").click(function(){
   // if you want to enable previously disabled option then do this
   // $("#rid").find("option").removeAttr('disabled');

   $("#rid").find("option[value='"+$(this).find("span").html()+"']")
           .attr('disabled','disabled');
});

http://jsfiddle.net/66hyZ/14/

于 2012-10-11T18:42:40.493 回答
1

JQuery 支持可以检查属性值的选择器,例如[name="value"].

于 2012-10-11T18:30:41.593 回答
0

为什么不给每个链接一个 id,然后使用 id 值禁用选择框中的选项

于 2012-10-11T18:37:19.280 回答