选择框只读 - 显示内容但不能更改任何选项

时间:2015-02-11 11:23:28

标签: jquery select find

我有一个装满值的选择框。如何在jquery中执行此条件: -

  • 在选择框中搜索选择值
  • 然后删除所有其他的,除了具有当前val的那个。

我尝试了以下内容,但只能添加新值。请帮忙

$('.selectBox')
    .find('option')
    .remove()
    .end()
    .append('<option value='m'>text</option>')
    .val('NEWval');

EDIT 我的变量中有一个select val,我想只选择那些选择框中的那些并删除所有其他的。 我的目的实际上是让选择框READONLY。当我尝试使用'禁用'时,它不会从中读取值

编辑2

   var columns=[];
    var col=[];
    $('#' +id).find('td').each(function(index, cell){
        columns.push($(cell).text());
         col.push($(this).attr("class"));
    });

    var m = (col[2].match(/\d+/)); 
    // $('.selectBox').val(m) ; this was earlier to select the value that corresponds to "m"


 $('.selectBox option:contains(' + m + ')').show().siblings('option').hide();
 $('.selectBox').val(m);

但我没有在选择框中进行任何更改。

2 个答案:

答案 0 :(得分:2)

假设您已检索到值=&#39; 3&#39;从服务器端 -

然后在你的代码中 -

    var value=3;//retrieved value

 $('.selectBox option[val="' + value + '"]')
    .prop('selected', true)
    .siblings()
    .attr('disabled',true);

这是演示 -

http://jsfiddle.net/judnwcyf/6/

答案 1 :(得分:1)

我猜你想要这样的东西:

var option = "ccc";

$('select option:contains(' + option + ')').show().siblings('option').hide();
$('select').val(option);

&#13;
&#13;
var option = "ccc";

$('select option:contains(' + option + ')').show().siblings('option').hide();
$('select').val(option);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option>select...</option>
  <option>aaa</option>
  <option>bbb</option>
  <option>ccc</option>
  <option>ddd</option>
</select>
&#13;
&#13;
&#13;

根据你的编辑2:

$('select option[value*="' + m + '"]').show().siblings('option').hide();
$('select').val(m);