0

我有一个 jQuery 模板,我需要检查列表中的复选框,其值在数组内。我正在尝试以下代码,但它不起作用:

{{each loginProvidersList}}
  {{if inArray($value.Id, settings.LoginProviders) }}
    <input id="${$value.Id}" type="checkbox" name="LoginProviders[]" value="${$value.Id}" checked="checked" /> ${$value.Name}<br />                     
  {{else}}
    <input id="${$value.Id}" type="checkbox" name="LoginProviders[]" value="${$value.Id}" /> ${$value.Name}<br />                     
  {{/if}}
{{/each}}  

settings.LoginProviders 包含一个数组,其中包含已从数据库加载的值

4

1 回答 1

0

我发现了错误。

首先 inArray 不返回布尔值,而是返回项目所在的索引(如果未找到则返回-1)。另外,我忘记了函数开头的 $ 。正确的代码是这样的:

{{each loginProvidersList}}
  {{if $.inArray($value.Id, settings.LoginProviders) != -1 }}
    <input id="${$value.Id}" type="checkbox" name="LoginProviders[]" value="${$value.Id}" checked="checked" /> ${$value.Name}<br />                     
  {{else}}
    <input id="${$value.Id}" type="checkbox" name="LoginProviders[]" value="${$value.Id}" /> ${$value.Name}<br />                     
  {{/if}}
{{/each}}
于 2013-03-13T11:01:02.810 回答