HTML / js.需要在一页上分别提交两种不同的表格
HTML / js. Need two different forms on one page submits separately
我找不到任何答案,然后问:
我在页面上有不同的表单:一个是"请求呼叫"(放置在网站的每个页面上),第二个是一个简单的"联系表单"(仅放置在联系页面上)。
都是没有问题的验证,它们是否在不同的页面上创建也很好。两者都有必需的字段。它们有不同的名称和id。
用户进入联系人页面时出现错误。有两种形式在一起。按订单联系方式为第一。当我使用它时,邮件发送。但是当我尝试用页面上的第二个表单发送呼叫请求时,它没有动作,因为第一个所需的表单没有填写或不匹配限制。
为什么第二个表单中的提交按钮从第一个表单中获取数据?下面表格中有关于订单的联系页面和处理功能。
第一种形式(触点)
<form id="message" name="contact_message" onsubmit="return false;" method="post">
<div class="hover">
<label for="message-name">Введите ваше имя:</label>
<input id="message-name" name="name" type="text" placeholder="Имя" title="Пожалуйста, введите ваше имя." required>
</div>
<div class="hover">
<label for="message-email">Введите ваш email адрес:</label>
<input id="message-email" name="email" type="email" placeholder="xxx@xxx.xx" title="Пожалуйста, введите корректно ваш email." required>
</div>
<div class="hover">
<label for="message-text">Введите ваше сообщение:</label>
<textarea id="message-text" name="text" placeholder="Текст сообщения" title="Пожалуйста, введите текст сообщения. Минимум 9 символов." minlength="9" required></textarea>
</div>
<input type="hidden" name="type" value="contact_page">
<button id="submit-contact" class="empty blue button medium" type="submit">Отправить</button>
<div class="c-clearfix"></div>
</form>
第二种形式 <form id="call-ask-form" name="call-ask-form" class="full-width" onsubmit="return false;" method="post">
<label for="phone-name">Ваше имя</label>
<input id="phone-name" type="text" name="name" placeholder="Введите ваше имя" minlength="2" required>
<label for="phone-phone">Ваш номер телефона (только цифры)</label>
<input id="phone-phone" type="text" name="phone" placeholder="+41234567890" maxlength="16" required>
<label for="phone-time">Время в формате ЧЧ:ММ, с 9 до 17 в будние дни, когда вы ожидаете звонок.</label>
<input id="phone-time" type="text" name="text" placeholder="ЧЧ:ММ" maxlength="5">
<input id="type" name="type" type="hidden" value="call_ask">
<button form="call-ask-form" id="call-submit" class="filled green medium full-width button" type="submit">Отправить запрос</button>
</form>
JS
这里,page_type
变量每次在第二个表单上按submit时都从第一个表单获取数据。然后切换到CONTACT,但是CALL REQUEST。
$(document).ready(function() {
$("#submit, #call-submit").click(function() {
var proceed = true;
var page_type = $('input[name=type]').val();
//validation
if(proceed)
{
var form;
//choosing type of a message
switch (page_type) {
case 'contact_page' :
// preparing data from CONTACT form
break;
case 'call_ask' :
// preparing data from CALL REQUEST form
break;
case 'calculator' :
break;
default :
}
// ajax post data
$.post('/assets/components/mailer2.php', post_data, function(response){
if(response.type == 'error'){ //load json data from server and output message
output = '<div class="error" style="background-color: red; color: white;">' + response.text + '</div>';
} else {
output = '<div class="success" style="background-color: green; color: white;">' + response.text + '</div>';
}
$(form).append(output).slideDown();
}, 'json');
}
});
为什么会这样?请你帮忙。
在$('input[name=type]').val();
行中,这将始终尝试查找与整个页面的名称标准匹配的第一个输入的值。但是,请注意,两个表单的输入名称相同。
下面的代码将为您提供正确的page_type:(请注意,在事件中,this
将被设置为当前元素,在以下情况下将是<form />
标记之一,您可以使用$(this).find(...)
而不是$(...)
来遍历它的子元素)
$('form').on('submit', function(e){
var page_type = $(this).find('input[name=type]').val();
alert(page_type);
e.preventDefault();
})
相关文章:
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 把两种不同的形式合为一
- 这两种不同的创建对象文字的方法有什么区别
- angularjs两种功能的替代品(欧芹和重置)
- 两个提交按钮,但第一个返回空
- 我想要相同的函数以两种方式反应
- HTML中两种JS实现之间的差异
- 比较两种不同格式的时间戳-GAS
- 这两种方法有什么不同
- 两个提交按钮(一个隐藏,一个可见)
- 正则表达式,两种方式,不同的结果
- 如何将两种不同类型的事件附加到同一元素
- 具有两个提交按钮和两个不同操作的 HTML 表单
- 这两种使用 jQuery 追加 DOM 元素的方法有什么不同
- 处理jQuery提交表单的两种方法
- 通过单击按钮或表单提交禁用注册按钮,这两种方式都会阻止表单提交
- 提交表格的两种方式
- 两种提交表格方法之间的差异
- 提交按钮同时使用两种方法,而不是一种,我该如何解决这个问题?
- HTML / js.需要在一页上分别提交两种不同的表格