我正在JQuery中开发一个Web表单,并通过帖子发送到PHP页面。
它看起来像这样:
$('#form-signup').submit(function(e)
{
$.ajax(
{
type: 'POST',
data: { name: $('#name').val() },
url: 'signup_backend.php',
success: function(data, textStatus, jqXHR)
{
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('error');
}
});
我的网络表单如下所示:
<form id="form-signup" action="">
<fieldset>
<label for="name">Nome</label>
<input type="text" id="name" name="name" value="<?=$name?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="email">Email</label>
<input type="email" id="email" name="email" value="<?=$email?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="tel">Telefone</label><input type="tel" id="tel" name="tel" value="<?=$tel?>"><span class="required">*</span>
</fieldset>
<fieldset>
<div>
<label class="blocker">Tipo de anunciante</label><span class="required">*</span>
</div>
<input type="radio" name="advertiser" id="advertiser_1">
<label for="advertiser_1" class="aleft">Particular</label>
<input type="radio" name="advertiser" id="advertiser_2">
<label for="advertiser_2" class="aleft">Imobiliária</label>
</fieldset>
<fieldset>
<label for="password">Senha</label>
<input type="password" id="password" name="password" value="<?=$password?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="check-password">Confirmação da senha</label>
<input type="password" id="check-password" name="check_password" value="<?=$check_password?>"><span class="required">*</span>
</fieldset>
<fieldset>
<input type="submit" value="Enviar" id="sub">
</fieldset>
</form>
当我收到退货时,我的地址显示以下内容:
http://localhost:8888/guia/web/adm/signup.php?name=John&email=&tel=&password=&check_password=
有没有办法避免我的地址栏中的这些数据?
谢谢大家
阻止表单提交的默认操作
$('#form-signup').submit(function(e){
e.preventDefault(); /// <--- THIS LINE
$.ajax({
type: 'POST',
data: {name: $('#name').val()},
url: 'signup_backend.php',
success: function(data, textStatus, jqXHR){
},
error: function(jqXHR, textStatus, errorThrown){
alert('error');
}
});
});
尝试过在处理程序末尾返回 false(对于提交函数)?
看起来您并没有阻止submit
事件的默认行为(提交表单),因此在提交表单时,您会同时收到 AJAX POST 请求和正常的 GET 表单提交。
添加这个:
e.preventDefault();
submit
以阻止默认表单提交并仅发送 AJAX POST 请求,以防止默认表单提交。
form
标签中定义method='POST'
。这也将指示类型,而无需将其放入jquery函数中。
<form id="form-signup" action="POST">
如下:
<form id="form-signup" action="POST">
<fieldset>
<label for="name">Nome</label>
<input type="text" id="name" name="name" value="<?=$name?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="email">Email</label>
<input type="email" id="email" name="email" value="<?=$email?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="tel">Telefone</label><input type="tel" id="tel" name="tel" value="<?=$tel?>"><span class="required">*</span>
</fieldset>
<fieldset>
<div>
<label class="blocker">Tipo de anunciante</label><span class="required">*</span>
</div>
<input type="radio" name="advertiser" id="advertiser_1">
<label for="advertiser_1" class="aleft">Particular</label>
<input type="radio" name="advertiser" id="advertiser_2">
<label for="advertiser_2" class="aleft">Imobiliária</label>
</fieldset>
<fieldset>
<label for="password">Senha</label>
<input type="password" id="password" name="password" value="<?=$password?>"><span class="required">*</span>
</fieldset>
<fieldset>
<label for="check-password">Confirmação da senha</label>
<input type="password" id="check-password" name="check_password" value="<?=$check_password?>"><span class="required">*</span>
</fieldset>
<fieldset>
<input type="submit" value="Enviar" id="sub">
</fieldset>
</form>
<</div>
div class="one_answers">另一种依赖于jQuery.ajax([settings])
的方法。
$.ajax({
processData : false
)};
网址: http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings