【问题标题】:JQuery "Any Row" PickerJQuery“任何行”选择器
【发布时间】:2008-10-14 00:59:08
【问题描述】:

我正在为 JQuery 寻找一个通用的“行选择器”。

我们都见过很酷的“选择器”工具,例如日期选择器、颜色选择器、时间选择器等,您可以在其中单击文本框,然后会出现一个小日历或色板或时钟或其他东西。您选择某些内容(如日期),然后在文本框中填充一个值。

我真的需要一个通用的“行选择器”,您可以在其中使用一些数据行(例如时区列表)填充某些内容(表格、div 等)。这将链接到一个文本字段,并在用户单击该字段时弹出。

他们会点击一行(比如一个时区),然后时区 id 会被传回该字段。

有人知道这样做的吗?

谢谢!

【问题讨论】:

    标签: jquery picker


    【解决方案1】:

    我不知道完全通用的,虽然你当然可以在 jQuery 中相当容易地实现行选择器。

    <script type="text/javascript"> $(function() {
            $('table#data_table tr').click(function() {
                  alert($(this).find('td.id').html());
              }); }); 
    </script>
    
    
    <table border="0" id="data_table">
    <tr>
    <td class="id">45</td><td>GMT</td>
    </tr>
    <tr>
    <td class="id">47</td><td>CST</td>
    </tr>
    </table>
    

    这会为每一行添加一次点击,在该行中找到标记的 id,然后您就可以对其进行操作。显然,您需要将其定位到您的数据表并根据内容进行过滤。然后可以使用 JQuery 将点击结果填充到目标字段中。然后,您可以提出一些约定,使您的所有数据表都以相同的方式工作,这将允许您将其概括为您的应用程序的通用选择器。

    【讨论】:

      【解决方案2】:

      在这种情况下,最好使用事件委托。因此,将事件处理程序放在表本身上,这样可以避免必须为每一行绑定一个处理程序,如果您有几行的话,这将非常昂贵。然后,您可以使用 event.target 来查询哪个元素负责该事件并从那里开始。

      更多信息here

      例如

      $('#someTable').click(function(e) {
        var target = $(e.target);
      
      });
      

      【讨论】:

        【解决方案3】:

        这不是您要求的内容,但它可能是您寻找的内容:Any+Time(TM) Datepicker/Timepicker AJAX Widget with Time Zone Support 可以显示时区列表时间选择器,使用户可以轻松选择适当的时区。它也很容易定制,并且比大多数其他使用下拉或滑块的时间选择器允许更快的选择。我希望这会有所帮助!

        【讨论】:

        • 嘿,这是一个相当不错的日期选择器。下次需要的时候一定要记住。
        【解决方案4】:

        我知道我迟到了一年,而且我可能在这里遗漏了一些东西,但是带有 size 属性的 select 元素有什么问题?

        <select name="test" size="5">
          <option value="1">One</option>
          <option value="2">Two</option>
          <option value="3">Three</option>
          <option value="4">Four</option>
          <option value="5">Five</option>
        </select>
        

        这将显示所有 5 个选项,并允许用户选择一个。如果只是以标准形式使用,它也绝对没有 Javascript 依赖,而且可以很好地处理典型的 Javascript 事件,并且似乎还可以产生您想要的确切外观 - 更不用说,一如既往,您可以使用 CSS 来设置样式随你喜欢。

        当标准 HTML 可以工作时,我说:使用标准 HTML。

        【讨论】:

        • 我想你可能误解了这个问题。搜索是(已经完成了一年左右)一个小部件,它允许您以日期选择器的样式从页外数据库列表中填充字段。
        • 我最终自己做了。
        • &lt;select&gt; 在语义上似乎仍然是更好的选择 - 特别是因为您正在谈论的是一个选择,而不是一个表格,正如&lt;table&gt; 所暗示的那样。如果你真的需要的话,你可以通过 AJAX 使用 &lt;option&gt; 标签填充它,但我可能只是在渲染时填充它以避免这种依赖(除非你已经是一个全 AJAX 应用程序)。
        • 当然,既然一切都结束了……嗯 :P 但我仍然觉得我理解了这个问题。我只是不同意这种事情的标准标签不会做的暗示。
        • 您可以在自定义“实体选择器”(将显示为页面上的叠加层)上执行的操作无法通过 select 执行:过滤和/或应用分页和/或搜索数据库表中可能包含许多无法在选择中管理的行...
        猜你喜欢
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 2020-01-09
        • 2013-03-17
        • 1970-01-01
        • 2019-05-21
        • 2013-06-03
        • 1970-01-01
        相关资源
        最近更新 更多