2012-09-18 372 views
0

我之前曾问过这个问题(请参阅this thread),但我再次陷入困境,而且在另一个示例中,该代码似乎不起作用。如何取消选择所有选择

GUI现在有两个不同的选取列表。 stylabid和pjtlabid。如果我点击其中一个,我希望清除其他列表中的任何选定项目。

这里是jQuery代码:

$('input[name="stylabid"]').change(
    function(){ 
     $('#pjtlabid').find('option').prop('selected',false) 
    }); 

但这并没有影响......没有人看到有什么不对吗?

TIA, rixter PS - 因为你们当中有些人问,这里是HTML代码:

<div id=content-container2> 
     <fieldset> 
     <LEGEND><b>Select Study Sample</b></LEGEND> 
    <p> 
    <P CLASS=select_header>Study - Box - Well - Lab ID<br> 
    <SELECT multiple size=20 NAME="stylabid" onchange=show_stylabid() onclick=clear_fetch() STYLE="width: 115px"> 
    <?php 
     $i=0; 
     while ($i < $numstylabids) { 
     $styarr = pg_fetch_row($stylabidresult); 
     echo "<option value=$styarr[0]>$styarr[1]\n"; 
     $i++;   
     } 
     ?> 
    </select> 
    </p>     
     </fieldset> 
    </div> 

和第二选择列表:

<fieldset> 
     <LEGEND><b>Select Project Sample</b></LEGEND> 
    <p> 
    <P CLASS=select_header>Project - Box - Well - Lab ID<br> 
    <SELECT multiple size=20 NAME="pjtlabid" onchange=show_pjtlabid() onclick=clear_fetch() STYLE="width: 115px"> 
    <?php 
     $j=0; 
     while ($j < $numpjtlabids) { 
     $pjtarr = pg_fetch_row($pjtlabidresult); 
     echo "<option value=$pjtarr[0]>$pjtarr[1]\n"; 
     $j++;   
     } 
     ?> 
    </select> 
    </p>     
     </fieldset> 
+1

我们可以看到您的标记吗?实际上是否有一个使用'id = pjtlabid'的元素? –

+1

选择列表的性质是总是有选择的东西。我们在说多选? – weexpectedTHIS

+0

[It works for me](http://jsfiddle.net/Q2dmU/)。演示将更改值,无需键入... – nbrooks

回答

1

该GUI现在有两个不同的选项列表。 stylabid和pjtlabid。如果我点击其中一个,我希望清除其他列表中的任何选定项目。

如果选择列表你说的是<select>元素,问题是你如何绑定你的改变处理程序:一个<select>不是<input>。相反,这样做:

$('select[name="stylabid"]').change(function() { 
    $('#pjtlabid').find('option').prop('selected',false); 
}); 

另外,请确保您使用的是right selectors; '#pjtlabid'选择其IDpjtlabid的元件,而[name="stylabid"]选择其名称stylabid的元素。名称和ID属性不一样。

+0

很高兴看到你的队友! ':)'+1 –

+0

感谢您的回答;它有助于我更好地理解,但我仍然没有解决问题... – rixter

1

如果删除选定的属性由选择器选择的任何东西都将是错误的。试试这个:

$('select[name="stylabid"]').change(function(){ 
    $('#pjtlabid option').removeAttr('selected'); 
}); 
+0

为什么不给你+1以及':''不确定是否需要removeattr尝试添加'.prop'! –

+0

无法得到这个工作要么...我害怕我的jQuery语法的知识是相当薄弱的... – rixter

0

像这个人? http://jsfiddle.net/5XFrc/1/

粘贴到您的HTML,我会做出具体的演示,请让我知道这是否有帮助,或者我很高兴删除这篇文章。

请注意change您可以使用this.checked作为状态,然后使用该状态更新属性。

希望它有助于事业。

代码

$("#tableOne thead tr th:first input:checkbox").click(function() { 
      var checkedStatus = this.checked; 
      $("#tableOne tbody tr td:first-child input:checkbox").each(function() { 
       this.checked = checkedStatus; 
      }); 
     });​ 
相关问题