javascript - 提交表单时未执行脚本
问题描述
我有一个表单,想使用 Ajax 将表单数据发送到 PHP 文件: 这是我的表单:
<div class="acc_content clearfix">
<form name="contactForm" id="contactForm" class="nobottommargin" action="guarda_pass.php" method="post" >
<div class="col_full" style="color: #898989">
<label style="color: #898989" for="login-form-username">Escribe tu nueva contraseña:</label>
<input type="text" id="password" name="password" value="" class="form-control" required />
</div>
<div class="col_full" style="color: #898989">
<label style="color: #898989" for="login-form-username">Confirma tu nueva contraseña:</label>
<input type="text" id="con_password" name="con_password" value="" class="form-control" required/>
</div>
<div class="col_full nobottommargin">
<button class="button button-3d button-black nomargin" style="background-color: #6fb6e5" type= "submit" value="login">Registrar</button>
</div>
</form>
<div id="contactResponse"></div>
</div>
这是脚本:
<script src="js/jquery.js"></script>
<script>
$("#contactForm").submit(function(event)
{
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
$submit = $form.find( 'button[type="submit"]' ),
password_value = $form.find( 'input[name="password"]' ).val(),
con_password_value = $form.find( 'input[name="con_password"]' ).val(),
url = $form.attr('action');
/* Send the data using post */
var posting = $.post( url, {
password: password_value,
con_password: con_password_value
});
posting.done(function( data )
{
/* Put the results in a div */
$( "#contactResponse" ).html(data);
/* Change the button text. */
$submit.text('Sent, Thank you');
/* Disable the button. */
$submit.attr("disabled", true);
});
});
</script>
单击提交按钮后,页面会自行重新加载,并且不会执行脚本。我究竟做错了什么?
解决方案
您的代码似乎有效。
这个 jsfiddle 显示了它(我已经注释掉了$.post
ajax 调用并添加了一个alert
来演示这一点)。也许您将脚本包含在一个没有执行的地方,或者它执行得太早——在 DOM 可用之前。您可以通过将脚本包装成以下内容来规避后者:
$(function() {
// your script content with $("#contactForm")... here
});
有关这方面的更多详细信息,请参阅api.jquery.com 上的 .ready() 。
推荐阅读
- python - 加载模型后在 Keras 中使用自定义优化器
- javascript - 按键事件退出函数
- yocto - 如果找不到 www.example.com,为什么 BitBake 会出错?
- curl - Restsharp 和 cURL 之间的不同行为
- javascript - 我们可以使用单个表单标签的操作发送两个发布请求吗?
- php - Symfony 3,ArrayCollection 的 remove() 导致错误“警告:isset 中的非法偏移类型或为空”
- c# - 在基类的实例上设置派生类的属性
- jquery - 使用 jquery none 显示跨度
- c# - .Net Standard 2.0 SQLite.Core 程序集在单元测试中找不到
- rabbitmq - 在 RabbitMQ 主题交换中,每个队列是否应该有唯一的路由键?或者每个连接应该只有一个队列?