单击列表框中的项目后,使用jquery再次取消选中它

时间:2013-01-29 10:05:32

标签: jquery

我的列表框如下代码:

<select onchange="saveQuery(this);" id="savedQuery" size="10" name="savedQuery[]">
  <option value="xyz">XYZ</option>
  <option value="mno">MNO</option>
</select>

并使用:

 function saveQuery(ptr){
     var queryName;
     var $queryName = $('#savedQuery option:selected').val()
     $("#query").val($queryName);        
 }

在这里,在变化时,我获得了所选项目的价值。

我想在同一次点击时再次取消选择。 这意味着一次选择和取消选择。

4 个答案:

答案 0 :(得分:1)

使用prop()

function saveQuery(ptr){
  var queryName;
  var $queryName = $('#savedQuery option:selected').val()
  $("#query").val($queryName);
  $("#savedQuery option:selected").prop("selected", false) ;      
}

答案 1 :(得分:0)

获取值为$('#savedQuery')的空字符串。

$('#savedQuery').val(''); 

这是jsfiddle。 http://jsfiddle.net/CfDmc/

答案 2 :(得分:0)

使用jQuery清除select的最简单方法是将其值设置为空字符串。

由于您将this传递给处理程序,因此无需在代码中为$('#savedQuery')在DOM中创建新搜索。 $('select').val()也与$('select option:selected').val()相同。

function saveQuery(ptr){
     var $this=$(ptr);
     var $queryName = $this.val();
     $("#query").val($queryName);
     /* reset*/
     $this.val('');        
 }

答案 3 :(得分:0)

您可以使用以下任何选项:

$("#savedQuery").val([]);

$("#savedQuery option").prop("selected", false);

$("#savedQuery option:selected").prop("selected", false) ; 

$("#savedQuery").find('option').removeAttr("selected");

所以你的功能将是这样的

function saveQuery(ptr){
   var queryName;
   var $queryName = $('#savedQuery option:selected').val()
   $("#query").val($queryName);
   $("#savedQuery").val([]);
}