首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在追加后更新输入字段

在追加后更新输入字段
EN

Stack Overflow用户
提问于 2014-03-23 14:59:05
回答 1查看 790关注 0票数 0

我正在做一个内联网表格。该表单允许用户创建“幻灯片显示”(div字段包含输入字段-下拉、文本框和按钮)。用户可以动态地选择添加任意数量的幻灯片。用户还可以更改幻灯片"type“(下拉,它隐藏了一些输入字段)。

我添加div字段的方式是调用一个函数(位于另一个文件中)。该函数只是为每个字段附加具有唯一ID/名称的幻灯片。我还使用jQuery UI使这些幻灯片可排序。除了需要更新某些输入值(或隐藏输入字段)外,一切正常。

我需要解决两件事:

  • 当幻灯片排序/重新排序时,更新输入字段。
  • 根据“类型”下拉列表隐藏某些元素。

我知道我可以用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('.type').change(function () { // hide elements });
$( "#main" ).sortable({ update: function() { // update elements}});

但是jQuery似乎不允许我们在附加之后轻松地访问字段。

我已经在网上搜索过可能的解决方案(使用“点击”事件),但什么都找不到。我希望有人能给我指明正确的方向。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-23 17:32:21

尝试这个(更新)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    function sortInput(el, type, action, val) {
      /* `el` : all `input` elements, or, `el#id`, `el.class`, `el[attr]` as `jquery` `object` */
      var inputs = $(el);
      /* `type` of `$(el)`, i.e.g., `text`, `submit`, `hidden`, etc.  */
      var type = (type || undefined); 
      /* if no `newVal` prodided, return `$(this).val() as `default`  */
      var val = val || $(this).val();
      /* `action` to call for `$(el)`, `hide` calls jsquery `.hide()`, `val` calls jquery `.val()` with provided `val` parameter */
      $.fn.actions = (action === "hide"
             ? function() {return this.hide()} 
             : (action === "val" ? function() {return this.val(val)} : null)
             ); 
      /* jquery `.filter()` `$(el)`'s by provided `type` */
      return $(inputs).filter(function() {
      /* `return` `$(el)`, `filter()`'ed by `type`, call `$.fn.actions()` provided with `action` parameter  */
        return $(this).attr("type") === type}).actions()
    };
    /* call `sortInput()`, `.filter()` `type` `submit`, call jquery `.hide()` */
    sortInput("input", "submit", "hide");
    /* call `sortInput()`, `.filter()` `type` `text`, call jquery `.val()`, with `val` ("newVal") provided parameter */
    sortInput("input", "text", "val", "newVal");

试试这个(未经测试)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(".type").on("change", "input", function (e) {
  console.log(e.target); return sortInput("input", "submit", "hide"); 
});

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22598289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文