我是jQuery的新手,我一直在努力完成以下任务:
我在SharePoint 2013中有两个下拉菜单。在Environment
菜单中选择WFE
值时,我希望Role
字段消失。
我无法验证是否已选择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>
我已经阅读了不少线程而不是线索。谢谢你的建议。
答案 0 :(得分:2)
$('.Role').val() = 'WFE'
应该是
$('.Role').val() === 'WFE'
=
表示赋值,===
表示严格的类型和值相等,几乎总是你想要的!可以使用==
,但可以咬你,因为它会进行无提示隐式转换,这会引入很难找到的细微错误。显式总是优于隐式。
JavaScript Comparison Operators
JavaScript具有严格和类型转换比较。一个严格的 比较(例如,===)仅在操作数相同时才为真 类型。更常用的抽象比较(例如==)转换 在进行比较之前,操作数为相同的类型。对于 关系抽象比较(例如,&lt; =),操作数是第一个 在比较之前转换为基元,然后转换为相同的类型。
使用标准词典排序比较字符串 Unicode值。
答案 1 :(得分:0)
您的=
问题
正确答案是:
if ($('.Role').val() == 'WFE'){}
=指定值
==比较值
更新:更多解释
如果您使用=
分配值并在if
这样的表达式周围使用if(count = 1)
,那么count会将值变为1,无论如何都会计算为真。
但是如果你使用比较运算符==
if(count == 1)
,那么它将检查count是否等于值1。如果是,则将表达式求值为true,并且语句将在其中执行。
答案 2 :(得分: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!');
}
});
});
答案 3 :(得分: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>
&#13;
谢谢大家! Chahoo