首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用gwt query获取按钮旁边的文本框的值

如何使用gwt query获取按钮旁边的文本框的值
EN

Stack Overflow用户
提问于 2013-03-27 20:31:16
回答 1查看 954关注 0票数 0

我有一个像这样的自定义小部件,它基本上是几个文本框和按钮。

代码语言:javascript
运行
复制
<g:VerticalPanel>
    <b:Label>Lower Limit</b:Label>
    <b:TextBox ui:field="lowerLimit" addStyleNames="lowerLimitTextBox"></b:TextBox>
    <b:Button icon="COPY" addStyleNames="copyAll copyAllLower">Copy To All</b:Button>
</g:VerticalPanel>

<g:VerticalPanel>
    <b:Label>Upper Limit</b:Label>
    <b:TextBox ui:field="upperLimit" addStyleNames="upperLimitTextBox"></b:TextBox>
    <b:Button icon="COPY" addStyleNames="copyAll copyAllUpper">Copy To All</b:Button>
 </g:VerticalPanel>

在一个页面上有许多这样的小部件。当一个按钮被点击时,我希望能够选择它左边的文本框,并将该值复制到所有相应的小部件中。

我可以选择按钮,但不知道如何选择紧邻其左侧的文本框。有人能帮上忙吗。

我添加了jQuery-selectors标记,因为选择器可能类似于GwtQuery的选择器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 05:33:29

首先,你必须知道VerticalPanel是如何呈现的,这样你才能知道文本框在dom中的位置。

VerticalPanel被呈现为一个表,并且每个小部件被定位到一个结构中:<tr><td>widget</td></tr>

在您的示例中,您可以使用closest()prev()来获取按钮的上一个tr

代码语言:javascript
运行
复制
$(button).closest("tr").prev();

然后使用find()获取前一个tr中的input

代码语言:javascript
运行
复制
$(button).closest("tr").prev().find("input")

因此,使用查找Widgets的gquery功能,UI中每个按钮的代码可能如下所示:

代码语言:javascript
运行
复制
  button.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
      TextBox box = $(button).closest("tr").prev().find("input").widget();
      for (TextBox b :  $(".gwt-TextBox").widgets(TextBox.class) ) {
        b.setValue(box.getValue());
      }
    }
  });

不过,如果你想使用gquery一次增强所有的按钮,那么一切都要简单得多:

代码语言:javascript
运行
复制
  $(".gwt-Button").click(new Function(){
    public void f() {
      String value = $(this).closest("tr").prev().find("input").val();
      $(".gwt-TextBox").val(value);
    }
  });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15658846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档