2015-02-06 69 views
1

我是新來的jQuery和我一直在用下面的任務掙扎:隱藏類有條件

我有兩個下拉菜單中的SharePoint 2013年我想Environment場當Role菜單中選擇WFE值消失。

我無法驗證WFE是否被選中與否:

$().ready(function() { 
    $('.Role').change(function() { 
     if ($('.Role').val() = 'WFE') { 
      $('.Environment').hide(); 
      alert('Changed!'); 
     } 
    }); 
}); 

<table cellpadding="5" cellspacing="5" bgcolor="black" > 
    <tr > 
     <td> 
      <!--Environment is a drop down menu in SharePoint 2013----> 
      <b>Environment</b><br> 
      <span class="Fields Environment" data-displayName="Environment"></span> 
     </td> 

    </tr> 
    <tr > 
     <td> 
     <!--Role is a drop down menu in SharePoint 2013----> 
      <b>Role</b><br> 
      <span class="Fields Role" data-displayName="Role"></span> 
     </td> 
    </tr> 
</table> 

我已經看了不少的線程,而不是一個線索。謝謝你的建議。

回答

2
$('.Role').val() = 'WFE' 

應該

$('.Role').val() === 'WFE' 

=意味着分配,===意味着嚴格的類型和價值的平等,這幾乎總是你想要的! ==可以使用但可以咬你,因爲它可以隱含隱式轉換,可以引入很難找到的細微錯誤。顯式總是比隱式更好。

JavaScript Comparison Operators

JavaScript有既嚴格和類型轉換比較。嚴格的 比較(例如,===)只有在操作數類型相同時才爲真。更常用的抽象比較(例如==)在進行比較之前將操作數轉換爲相同類型。對於 關係抽象比較(例如,< =),在比較之前,操作數首先被轉換爲原語,然後轉換爲相同類型。

使用 Unicode值基於標準辭典排序比較字符串。

0

=是問題

正確答案是:

if ($('.Role').val() == 'WFE'){} 

=分配值

==比較值

更新:更多的解釋

如果您使用=指定值並使用if圍繞像if(count = 1)這樣的表達式,則count會將值設爲1,無論如何它的計算結果爲true。

但是,如果您使用比較運算符==if(count == 1),那麼它將檢查count是否等於值1。如果是,那麼將評估表達式爲真,並且語句將在其中執行。

+3

爲什麼downvote?我給出了正確的答案。 – 2015-02-06 19:17:21

+1

@ JQuery.PHP.Magento.com我們不應該在意這樣的想法。因爲全球有很多人...... – 2015-02-06 19:25:42

+1

@Bhojendra好吧,沒有解釋/評論的downvote是一件無禮的事情。特別是在一個沒有明顯錯誤的新帖子中。 – Tomalak 2015-02-06 19:29:45

0

第一個變化:

$().ready(function() { 

because it is not recommended to use

要這樣:

$(documenet).ready(function(){ 

第二個變化:

if ($('.Role').val() = 'WFE') { 

要這樣:

if ($('.Role').val() == 'WFE') {//use == or === to compare 

$(document).ready(function() { 
    $('.Role').change(function() { 
     if ($('.Role').val() == 'WFE') { 
     $('.Environment').hide(); 
     alert('Changed!'); 
     } 
    }); 
}); 
+1

'$()。ready(function(){...}'和'$ (documenet).ready(function(){...}' - 爲什麼OP應該將更短的表單更改爲更長的表單呢? – Tomalak 2015-02-06 19:21:38

+0

請參閱文檔,不建議使用... – 2015-02-06 19:22:25

+0

啊,我的錯誤。對不起。(我正在考慮'$(function(){...}') – Tomalak 2015-02-06 19:24:44

0

對我的作品....

<script type="text/javascript"> 
 
$(document).ready(function() { 
 
    $('.Role').change(function() { 
 
     var Selected = $("select[title='Role']").val(); 
 
     if (Selected == "WFE"){ 
 
      $('.Environment').hide(); 
 
      alert('Changed!'); 
 
     } 
 
    }); 
 
}); 
 
</script>

謝謝大家! Chahoo