首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从流星的动态创造输入中获取价值?

如何从流星的动态创造输入中获取价值?
EN

Stack Overflow用户
提问于 2017-08-29 08:57:12
回答 1查看 231关注 0票数 0

我已经创建了一个自定义表单,并为动态输入添加了一些jquery,但是我无法从这些生成的输入(元素、链接、图像)中获取值。这是我的表格和代码。

模板这是我的表单模板

代码语言:javascript
代码运行次数:0
运行
复制
<form id="workForm" class="workAdd">
<label>Title</label>
<input type="text" name="title" id="title" class="form-control">
<label>Live Link</label>
<input type="text" name="llink" id="llink" class="form-control">
<label>Elements Used In This Project</label>
<div class="row" id="eleContainer">
    <div class="eleRow">
        <div class="col s6 m6 l6">
            <label>Element</label>
            <input type="text" name="elements[]" id="elementsid[]" class="form-control">
        </div>
        <div class="col s6 m6 l6">
            <label>Link</label>
            <input type="text" name="elinks[]" id="elinksid[]" class="form-control" >
        </div>
    </div>
</div><!--row-->
<div class="row">
    <div class="col s6 m12 center">
        <a class="btn-floating waves-effect waves-light" id="addElements"><i class="fa fa-plus"></i></a>
    </div>
</div>
<div class="row" id="imgContainer">
    <div class="imgRow">
        <label>Image</label>
        <input type="text" name="image[]" id="imageid[]" class="form-control" >
    </div>
</div>
<div class="row">
    <div class="col s6 m12 center">
        <a class="btn-floating waves-effect waves-light" id="addImages"><i class="fa fa-plus"></i></a>
    </div>
</div>
<label>Detail</label>
<textarea id="detail" class="materialize-textarea" name="detail" data-length="120"></textarea>

<button type="submit" id="work-submit" thisId="" class="btn btn-primary">Submit</button>

Meteor,这是我为这个表单创建的提交事件。

代码语言:javascript
代码运行次数:0
运行
复制
Template.addworkTemp.events({
"submit .workAdd": function(event) {

    var title = event.target.title.value;
    var llink = event.target.llink.value;
    var elements = event.target.elements.value;
    var elinks = event.target.elinks.value;
    var images = event.target.images.value;
    var detail = event.target.detail.value;
    return false;
EN

回答 1

Stack Overflow用户

发布于 2017-08-29 19:35:43

有一个好的流星形式教程可能对您有用。本教程是基于blaze,这是您正在使用的。

首先,您可以将处理程序附加到form,而不是附加到workform类。

代码语言:javascript
代码运行次数:0
运行
复制
Template.addWorkTemp.events({
  'submit form'(event) {
  ...
  }
});

然后,您应该防止默认表单操作:

代码语言:javascript
代码运行次数:0
运行
复制
Template.addWorkTemp.events({
  'submit form'(event) {
    event.preventDefault();
    ...
  }
});

event对象具有一个target属性,该属性基于html中附加到每个字段的名称为每个字段提供属性。

代码语言:javascript
代码运行次数:0
运行
复制
Template.addWorkTemp.events({
  'submit form'(event) {
    event.preventDefault();
    console.log(event.target.llink.value);
    ...
  }
});

我不知道你为什么要在字段名后面加上[]。在这种情况下,我不确定这些说法是否成立。

有一个相关答案展示了如何通过template对象访问表单元素,这是事件处理程序的第二个可选参数。这也可能对你有帮助。

当我调试类似的东西时,我通常会在事件处理程序的第一行设置一个断点(使用浏览器的开发工具),然后检查事件,以确保了解其中的内容。

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

https://stackoverflow.com/questions/45934744

复制
相关文章

相似问题

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