如何使用带有复选框的jQuery change()?

时间:2017-12-19 15:50:06

标签: javascript jquery sharepoint

我正在使用Sharepoint并使用注入的Javascript和JQuery创建一个列表。如果用户选择"其他"我试图显示一个文本框。选项。此选项最初来自下拉菜单,但现在基于多个选项的复选框。

以下是基于下拉列表的代码:

function TargetAudienceChange(){
  $('select').on('change', function(){
    var TargetAudience = $('select[id*=TargetAudience]').val();
    if (TargetAudience == 'Other (Specify)'){
      $("h3.ms-standardheader:contains('Other Cultural Awareness')").closest("tr").show();
    }
    else {
      $("h3.ms-standardheader:contains('Other Cultural Awareness')").closest("tr").hide();
      $('input[id*=OtherTargetAudience]').val("");
    }
  })
}

我尝试了这个没有成功:

function TargetAudienceChange(){
  $('checked').on('change', function(){
    var TargetAudience = $('checked[id*=TargetAudience]').val();
    if (TargetAudience == 'Other (Specify)'){
      ...
    }
    else {
      ...
    }
  })
}

如何根据允许多项选择的复选框使此代码适用于选项?

2 个答案:

答案 0 :(得分:0)

这个选择器:

$('checked')

正在寻找这样的元素:

<checked />

这不是一个复选框。看看你的HTML。复选框是:

<input type="checkbox" />

所以你要使用这样的东西:

$('input[type="checkbox"]')

或更短的:

$('input:checkbox')

与您的其他选择器相同:

$('checked[id*=TargetAudience]')

没有<checked />元素,您需要查找以下元素:

$('input[id*=TargetAudience]')

或者也许:

$('input[type=checkbox][id*=TargetAudience]')

注意:如果此选择器定位到多个元素,则.val()可能只会返回第一个匹配元素的值。你如何解决这个问题取决于你是否要定位一个更具体的元素,或者你真正想要的是多个元素的值集合。

答案 1 :(得分:0)

我能够用以下方法解决这个问题:

git grep '[-][>]upload'