我正在使用模态注册对话框在Meteor中创建一个应用程序。出于某种原因,输入文本框(用户名,密码和电子邮件)的值经常未定义。 以下是模板:
<template name="modalLogin">
<div id="myModal" class="modal fade in" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Login to create your own lists</h4>
</div>
<div class="modal-body">
<form id="signup-form">
<label for="create-user-username">User Name</label>
<input type="text" id="create-user-username">
<label for="create-user-email">Email</label>
<input type="text" id="create-user-email" >
<label for="create-user-password">Password</label>
<input type="password" id="create-user-password">
<input type="submit" value="Sign Up!">
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default close-btn" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</template>
以下是模板事件处理程序的代码(为简洁起见,删除了一些代码):
Template.modalLogin.events({
'submit #signup-form': function (evt, template) {
evt.preventDefault();
evt.stopPropagation();
console.log(template);
var username = template.$('#create-user-username').val();
var email = template.$('#create-user-email').val();
var password = template.$('#create-user-password').val();
console.log('username = ' + username); //undefined
console.log('email = ' + email); //undefined
console.log('password = ' + password); //undefined
}
});
我不知道为什么会这样,因为这里没有什么复杂的。此外,它确实有时非常混乱。
答案 0 :(得分:0)
试试这个:只需为输入元素调用jquery
var username = $('#create-user-username').val();
var email = $('#create-user-email').val();
var password = $('#create-user-password').val();
注意: - 在调用此代码之前,请确保包含jquery库。另外,请确保在页面中的DOM结构中有唯一的输入字段ID。