【发布时间】:2018-11-30 02:12:05
【问题描述】:
我的表单设置为id="contactForm"。当我在相应的 JS 文件中写入$("#contactForm").submit(function(event){...} 时,它甚至似乎什么都没有触发。
这里有什么问题?
$("#contactForm").submit(function(event) {
// cancels the form submission
event.preventDefault();
console.log("submit hit");
alert("Submitted");
});
<script src="js/jquery-3.2.1.min.js"></script>
^ I use this in production, not a CDN
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="modal-body">
<form role="form" action="form-process.php" method="POST" id="contactForm">
<div class="input-group mb-3">
<label for="name"></label>
<div class="input-group-prepend"> <span class="input-group-text">Name</span> </div>
<input type="text" class="form-control" id="name" aria-label="First and last name.">
<div class="invalid-feedback">Required</div>
<div class="valid-feedback"></div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend"> <span class="input-group-text">Email</span> </div>
<input type="email" class="form-control" aria-label="Email address." id="email">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Subject</button>
<div class="dropdown-menu"> <a class="dropdown-item" href="#">Music</a> <a class="dropdown-item" href="#">Programming</a> <a class="dropdown-item" href="#">Just saying hi!</a> </div>
</div>
<input type="text" class="form-control" aria-label="Subject" id="subject">
</div>
<div class="input-group">
<div class="input-group-prepend mb-3"> <span class="input-group-text">Message</span> </div>
<textarea class="form-control" id="message" aria-label="Email message."></textarea>
</div>
</form>
<button class="btn btn-outline-primary" id="form-submit" type="submit" data-dismiss="modal">Send</button>
</div>
<script src="js/email.js"></script>
^ This has the contents of the form logic
这是live site的链接。
【问题讨论】:
-
请在minimal reproducible example 中包含所有相关代码。代码的外部链接只能用于演示目的。
-
您能否发布代码,而不是让我们搜索您的网站以尝试找出其位置和问题所在?
-
第 1 步:验证您认为自己得到的就是您正在得到的。使用
console.log打印$("#contactForm")为您提供的内容。真的是这样的形式吗?如果没有,您已经自己解决了部分问题。如果是,这是添加到问题中的好信息,因为这意味着问题不在于元素选择。 -
可能是您返回 false 或脚本在函数上遇到异常,从而停止执行提交事件。此外,如果有两个元素具有相同的 id,则代码将不起作用。
标签: javascript jquery html twitter-bootstrap forms