我希望能够在GWT中将Bootstrap复选框设置为“indeterminate”状态。我写了以下代码:
/**
* JavaScript to give an ID'd element in a form the focus
*
* @param checkbox Element to manipulate
* @param indeterminate True if indeterminate, false if not
*/
public static native void setIndeterminate (Element checkbox, boolean indeterminate) /*-{
checkbox.indeterminate = indeterminate;
}-*/;
在Chrome中运行此调试器,调试器告诉我复选框设置为indeterminate = true,但仍显示为未选中。当我显示this page时,我正确地看到了不确定的复选框,因此这不是浏览器问题。
有关如何解决此问题的任何建议吗?
答案 0 :(得分:0)
为什么你想要JSNI代码?
您可以使用以下
Checkbox checkbox = new Checkbox("Some-Label");
checkbox.getElement().setAttribute("indeterminate", true /*Or false*/);
修改强>
刚查看了一些文档和博文。显然,GWT不支持复选框中的不确定性。显然有一种解决方法。
每当您想要不确定的值时,请将复选框设置为null。然后使用CSS技巧来设置复选框的样式。
答案 1 :(得分:0)
对于GWT和GWT Bootstrap,Checkbox是一个span,其第一个元素是输入复选框。所以这个问题就解决了:
import com.google.gwt.dom.client.Element;
Element element = checkbox.getElement ();
Element child = element.getFirstChildElement ();
if (child != null)
element = child;
setIndeterminate (element, indeterminate);