【问题标题】:event.target.name.value - Uncaught TypeError: Cannot read property 'value' of undefinedevent.target.name.value - 未捕获的类型错误:无法读取未定义的属性“值”
【发布时间】:2017-01-28 23:18:16
【问题描述】:

我在 Meteor.js 应用程序中使用了一个表单和一些 javascript 逻辑。提交表格时。我收到错误消息:

未捕获的类型错误:无法读取未定义的属性“值”

它在抱怨这条线:

var email = event.target.email.value.toLowerCase();

这是表单的样子:

<form class="request-form" id="request-form" method="post" action="#">
                    <div class="form-group">
                      <input type="text" name="name" id="name" value="" class="form-control" placeholder="Your Name" required />
                    </div>
                    <div class="form-group">
                      <input type="text" name="email" id="email" value="" class="form-control" placeholder="Email Address" required />
                    </div>
                    <div class="form-group">
                      <input type="text" name="subject" id="subject" value="" class="form-control" placeholder="Subject" required />
                    </div>
                  </form>
                </div>
              </div>
              <div class="col-md-6 col-sm-12">
                <div class="block">
                  <form>
                    <div class="form-group-2">
                      <textarea id="message" name="message" class="form-control" value="" rows="3" placeholder="Your Message"></textarea>
                    </div>
                    <button class="btn btn-default submit" type="submit">Send Message</button>
                  </form>

这是逻辑处理程序的样子:

    Template.contact.events({
        'submit form': function(event, template) {
            event.preventDefault();
            var $form = template.$('#request-form');

                if ($form.valid()) {

                    var name = event.target.name.value;

//COMPLAINING ABOUT THIS
var email = event.target.email.value.toLowerCase();

                    var subject = event.target.subject.value;
                    var message = event.target.message.value;

                    UserList.insert({
                        name: name,
                        email: email,
                        subject: company,
                        message: message
                    });

                   // template.showForm.set( false );
                }

            window.scroll(0,0);
        }
    });

【问题讨论】:

  • 提交#request-formform-group-2哪个表单?
  • #request-form。 .form-group 只是一个类
  • HTML 中有两个表单 - 要找出提交了哪个表单,请输入此代码alert(event.target)

标签: javascript jquery meteor


【解决方案1】:

如果您为该字段分配了一个 id 属性,并且您确定该字段始终是填充的,那么您可以通过以下方式访问它:

var email = $("#email").val();

我认为主要问题是您有两种形式。 submit 的作用与您的电子邮件所在的表单不同。

【讨论】:

  • 第二种形式在哪里??
猜你喜欢
  • 2011-09-26
  • 2021-12-22
  • 2015-01-06
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多