gpt4 book ai didi

javascript - 防止页面刷新并提交表单数据

转载 作者:行者123 更新时间:2023-12-02 14:12:43 25 4
gpt4 key购买 nike

所以我正在尝试提交表单数据,但不希望页面更改/刷新。同时我希望在完成时弹出一个 jquery 对话框。

这是我的原创:

 <script>
$( function() {
$('#dialog-message').dialog({
autoOpen: false,
title: 'Basic Dialog'
});



$( "#subbutton" ).click(function( event ) {
event.preventDefault();

$.post("formaction.php",function(){
$('#dialog-message').dialog('open');
return false;
});
});
});
</script>

这会向数据库提交空白数据,但会插入新行。删除 event.preventDefault();提交所有数据,但页面更改为 formaction.php 。

我尝试进行民意调查,但我不太确定如何正确执行。我将在一些代码中提供该代码,因为它在不同的计算机上。

$( function() {
$('#dialog-message').dialog({
autoOpen: false,
title: 'Basic Dialog'
});

});

$( "#subbutton" ).click(function( event ) {
$('#dialog-message').dialog('open');

event.preventDefault();

$(function poll(){

setTimeout( function(){

$.ajax({
type:'POST',
dataType: 'json',
url:'formaction.php',
success: function(data){

},
complete: poll
}),
},
5000);

})


/*
$.post("formaction.php",function(){
return false;
});
event.preventDefault();
*/
});
poll();

添加表单以获取更多详细信息

<div id="lostForm">
<form name="lostForm" method="post" action="formaction.php" enctype="multipart/form-data">
<h1> Owner Information</h1>
<label for="fname">First Name</label>
<input type="text" id="fname" name="firstname" placeholder="First name" required>
<br> <br>
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lastname" placeholder="Last name" required>
<br> <br>
<label for="mnumber">Mobile</label>
<input id="mnumber" name="mobilenumber" placeholder=" (###)###-####" required>
<br> <br>
<label for="email">Email</label>
<input type="text" id="email" name="email" placeholder="email@example.com" required>
<br>
<br>
<hr>
<h1> Pet Information </h1>

<br>
<label for="pname">Pet Name</label>
<input type="text" id="pname" name="petname" placeholder="Pet Name" required>
<br> <br>
<label for="petgen">Pet Gender</label>
<select name="petgen" id="petgen" required>
<option value="male"> Male </option>
<option value="female"> Female </option>
</select>
<br> <br>
<label for="pname">Pet Age</label>
<input type="text" id="page" name="petage" placeholder="How old is your pet?" required>
<br> <br>
<label for="primary">Primary Color</label>
<select name="color1" id="primary" required>
<option value="black"> Black </option>
<option value="brindle"> Brindle </option>
<option value="cream"> Cream </option>
<option value="red"> Red </option>
<option value="white"> White </option>
<option selected="selected" value="none"> --none-- </option>
</select>
<br> <br>
<label for="secondary">Second Color</label>
<select name="color2" id="secondary" required>
<option value="black"> Black </option>
<option value="brindle"> Brindle </option>
<option value="cream"> Cream </option>
<option value="red"> Red </option>
<option value="white"> White </option>
<option selected="selected" value="none"> --none-- </option>
</select>
<br> <br>
<label for="markings">Markings</label>
<input type="text" id="markings" name="marking" placeholder="Indetifiable Markings" optional>

<br><br>

<label for="fileToUpload">Upload Image:</label>
<br>

<input id="fileToUpload" type="file" name="fileToUpload">
<br>
<br>
<hr>
<h1> Location Lost </h1>
<div id="locationField">
<input id="autocomplete" placeholder="Enter your address"
onFocus="geolocate()" type="text"></input>
</div>

<table id="address">
<tr>
<td class="label">Street address</td>
<td class="slimField"><input class="field" id="street_number"
disabled="true" name="streetAdd"></input></td>
<td class="wideField" colspan="2"><input class="field" id="route"
disabled="true"></input></td>
</tr>
<tr>
<td class="label">City</td>
<td class="wideField" colspan="3"><input class="field" id="locality"
disabled="true" name="city"></input></td>
</tr>
<tr>
<td class="label">State</td>
<td class="slimField"><input class="field"
id="administrative_area_level_1" disabled="true" name="state"></input></td>
<td class="label">Zip code</td>
<td class="wideField"><input class="field" id="postal_code"
disabled="true" name="zip"></input></td>
</tr>
<tr>
<td class="label">Country</td>
<td class="wideField" colspan="3"><input class="field"
id="country" disabled="true"></input></td>
</tr>
</table>


<button type="submit" value="Submit" name="submitbtn" id="subbutton">Submit </button>

</form>

最佳答案

您的 ajax $.post() 函数缺少您要插入的数据。

添加它的最简单方法是序列化表单:

...
event.preventDefault();

$.post("formaction.php", $('form').serialize(), function(){
$('#dialog-message').dialog('open');
});

现在,form 元素中的所有字段都将添加到帖子中。如果您有多个表单,您可以使用表单的 id 来获取正确的表单:

$.post("formaction.php", $('#your_form').serialize(), function(){
$('#dialog-message').dialog('open');
});

关于javascript - 防止页面刷新并提交表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39375032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com