Javascript duel ajax表单提交到错误的文件
我有一个单一的js文件,我正试图获得两个不同的表单提交,这取决于哪个表单提交,将取决于它提交到哪个文件。例如,表格1提交给contact_me.php,而表格2提交给mailer.php 以下是第一种形式的javascript:Javascript duel ajax表单提交到错误的文件,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我有一个单一的js文件,我正试图获得两个不同的表单提交,这取决于哪个表单提交,将取决于它提交到哪个文件。例如,表格1提交给contact_me.php,而表格2提交给mailer.php 以下是第一种形式的javascript: var form = $('#ajax-submit'); // Get the messages div. var formMessages = $('#submit-messages'); // Set up an event listener for th
var form = $('#ajax-submit');
// Get the messages div.
var formMessages = $('#submit-messages');
// Set up an event listener for the contact form.
$(form).submit(function(e) {
// Stop the browser from submitting the form.
e.preventDefault();
// Serialize the form data.
var formData = $(form).serialize();
// Submit the form using AJAX.
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData
})
.done(function(response) {
// Make sure that the formMessages div has the 'success' class.
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
// Set the message text.
$(formMessages).text(response);
// Clear the form.
$('#s_name').val('');
$('#s_email').val('');
$('#s_message').val('');
})
.fail(function(data) {
// Make sure that the formMessages div has the 'error' class.
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
// Set the message text.
if (data.responseText !== '') {
$(formMessages).text(data.responseText);
} else {
$(formMessages).text('Oops! An error occured and your message could not be sent.');
}
});
});
这是与该块相关联的html:
<div id="submit">
<div class="menucontent">
<div class="submitclose closer"></div>
<h2>Submit</h2>
<form id="ajax-submit" method="post" class="submitform" action="contact_me.php">
<table>
<tr>
<td>
<input placeholder="Name..." type="text" name="s_name" id="s_name" required>
</td>
</tr>
<tr>
<td>
<input placeholder="E-mail..." type="text" name="s_email" id="s_email" required>
</td>
</tr>
<tr>
<td>
<input type="file" id="file_attach" class="file_attach">
</td>
</tr>
<tr>
<td>
<textarea placeholder="Message..." name="s_message" id="s_message" required></textarea>
</td>
</tr>
<tr>
<td>
<input class="submit" type="submit" value="Submit">
</td>
</tr>
<tr>
<td>
<img src="img/ajax-loader.gif" class="loading-img" style="display:none">
</td>
</tr>
<tr>
<td>
<div id="submit-messages"></div>
</td>
</tr>
</table>
</form>
</div>
</div>
以及相关的html:
<div id="contact">
<div class="menucontent">
<div class="contactclose closer"></div>
<h2>Contact</h2>
<form id="ajax-contact" method="post" action="mailer.php"><!--Contant Form ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<table>
<tr>
<td>
<select form="ajax-contact" id="select" name="select">
<option>This message is about...</option>
<option value="Hello">...saying Hello</option>
<option value="Question">...a Question</option>
<option value="Business">...strictly Business</option>
</select>
</td>
</tr>
<tr>
<td>
<input placeholder="Name..." type="text" name="name" id="name" required>
</td>
</tr>
<tr>
<td>
<input placeholder="E-mail..." type="text" name="email" id="email" required>
</td>
</tr>
<tr>
<td>
<textarea placeholder="Message..." name="message" id="message" required></textarea>
</td>
</tr>
<tr>
<td>
<input class="submit" type="submit" value="SEND MESSAGE">
</td>
</tr>
<tr>
<td>
<div id="form-messages"></div>
</td>
</tr>
</table>
</form>
</div>
</div>
联系
这条消息是关于。。。
…打招呼
…一个问题
…严格地说是公事
我的问题是,当我试图提交第一个表单时,应该转到contact_me.php的表单却提交到mailer.php。我肯定错过了什么。按理说,第一个表单“submit”应该发送到contact_me.php,但不是,而是发送到mailer.php
你对我遗漏的东西有什么想法吗?我相信你的问题在于这一行:
url: $(form).attr('action'),
应改为:
url: $(formMessages).attr('action'),
可能还有其他类似的位(您没有包括,比如
formData
是如何在其中计算的)。您必须使用不同的变量来分配表单引用
在您使用的第一个JavaScript中
var form = $('#ajax-submit');
它被第二个脚本的变量覆盖
var form = $('#ajax-contact');
所以更改第一个或第二个JavaScript
var form
将变量名引用到不同的名称
var form