template.find().val给了我未定义的值

template.find().val gives me undefined value

本文关键字:未定义 find val template      更新时间:2024-06-13

我有一个模板表单来输入和显示值,模板如下:

<div class="col-lg-8">
   <input class="form-control" type="text"  id = "apFirstName" 
      value= {{#each apprentice}}{{name.firstName}}{{/each}}>
</div>

js代码如下:

Template.apprenticeProfile.events({
    'submit form': function(event,template) {
        event.preventDefault();            
        first = template.find('#apFirstName').val;
        console.log(first);

控制台会给我未定义的,但在我的代码工作之前,如果我更改输入

id = 'apFirstName' name = 'apFirstName'

还有像这个的js

Template.apprenticeProfile.events({
    'submit form': function(event) {
        event.preventDefault();
        let first = $('[name=apFirstName]').val();
        console.log(first);

有人能告诉我我的template.find().val代码出了什么问题吗?如果可能的话,template.find().val是否可以在 name = 'apFirstName' 上工作,而不是将名称更改为id?

您需要jQuery元素还是JavaScript元素?如果你想要jQuery元素,你应该像这样使用template.$

Template.apprenticeProfile.events({
    'submit form': function(event,template) {
        event.preventDefault();            
        first = template.$('#apFirstName').val(); //use val() instead of val
        console.log(first);
     }
});

如果你想要javascript元素,那么

Template.apprenticeProfile.events({
    'submit form': function(event,template) {
        event.preventDefault();            
        first = template.find('#apFirstName').value; //use value instead of val
        console.log(first);
     }
});