0

Web コントロール (ドロップダウンリスト) を渡しているルビーがあります。私の意図は、選択されているリスト項目の数を数えることです。その数が 1 より大きい場合は、ドロップダウン リストの最初の項目の選択を解除します。

これは私がこれまでに持っているものです..壊れることはありませんが、より多くのアイテムを強制的に選択しても、カウントは常に0になります。

return control if control.nil?;

count = 0;
control.Items.each { |item| if item.Selected == "true" then count+=1 end }
if count > 1 then
  control.Items[0].Selected = "false"
end
return control;

ちょっとした扱いかと思って、item.Selected=1も試してみました。誰かが私が台無しにしたことを指摘できますか。

ありがとう

4

2 に答える 2

2

まだ「文字列ブール値」を使用しています:

unless control.nil?
  if control.Items.select { |item| item.Selected == "true" }.count > 1 then
    control.Items[0].Selected = "false"
  end
end

return control;

実際のブール値を使用する:

unless control.nil?
  control.Items[0].Selected = false if (control.Items.select { |item| item.Selected }.count > 1)
end

return control;
于 2013-08-15T21:42:42.280 に答える