- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请帮助我..我想验证表单并使用 ajax 发送。
验证没有 ''onsubmit="return validateForm(this);"'' 工作。
但是当表单正确时,它的发送表单(页面刷新..)请耐心等待并帮助我..
这个页面是在 php 上的。但我必须只用 js/jquery 验证然后发送 ajax。
这对我很重要,这个页面是给新人的..
表格:
<form action="index.php?page=insertContact" id="ajax_form" enctype="multipart/form-data" method="post" onsubmit="return validateForm(this);">
<div>
<input type="text" id="name" name="name" placeholder="Imię i nazwisko:" />
<ul class="error"></ul>
<input type="text" id="mail" name="mail" placeholder="Adres e-mail:"/>
<ul class="error"></ul>
<div>
<input type="text" id="phone_area" name="phone_area" placeholder="Nr. kier.:"/>
<div class="clear"></div>
<ul class="error phone_area"></ul>
</div>
<div>
<input type="text" id="phone" name="phone" placeholder="Telefon kontaktowy:"/>
<div class="clear"></div>
<ul class="error phone"></ul>
</div>
<input type="text" id="title" name="title" placeholder="Tytuł wiadomości:"/>
<ul class="error"></ul>
<textarea id="content_area" name="content_area" placeholder="Treść wiadomości:"></textarea>
<ul class="error"></ul>
<input type="submit" name="submit" class="submit" value="Wyślij formularz"/>
<a href="#" id="send_form" title="Wyślij">Wyślij</a>
</div>
</form>
和 js:
function ValidateName(name) {
var reg = /^([A-Za-z\-\. ]{1,50})$/;
if (reg.test(name) == false) {
return false;
}
else {
return true;
}
}
function ValidateEmail(address) {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (reg.test(address) == false) {
return false;
}
else {
return true;
}
}
function ValidatePhoneArea(phone_area) {
var reg = /^[0-9]{4}$/;
var reg2 = /^[+]{1}[0-9]{2}$/;
if ((reg.test(phone_area) || reg2.test(phone_area)) == false) {
return false;
}
else {
$('#ajax_form ul.phone_area').find('li').remove();
return true;
}
}
function ValidatePhone(phone) {
var reg = /^[0-9]{7}$/;
var reg2 = /^[0-9]{9}$/;
if ((reg.test(phone) || reg2.test(phone)) == false) {
return false;
}
else {
$('#ajax_form ul.phone').find('li').remove();
return true;
}
}
function ValidateTitle(title) {
if ((title.length) > 100) {
return false;
}
else {
return true;
}
}
function ValidateContent(content_area) {
if ((content_area.length) > 1000) {
return false;
}
else {
return true;
}
}
function validateForm(AForm) {
var tekst = '';
if (AForm.name.value == "") {
$('#ajax_form #name').next('ul').children().remove();
$('#ajax_form #name').next('ul').append('<li>Wpisz swoje imię i nazwisko</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
else if (AForm.name.value != "") {
$('#ajax_form #name').next('ul').children().remove();
if (!ValidateName(AForm.name.value)) {
$('#ajax_form #name').next('ul').children().remove();
$('#ajax_form #name').next('ul').append('<li>Wpisz poprawnie swoje imię i nazwisko</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (AForm.mail.value == "") {
$('#ajax_form #mail').next('ul').children().remove();
$('#ajax_form #mail').next('ul').append('<li>Wpisz swój adres e-mail</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
} else if (AForm.mail.value != "") {
$('#ajax_form #mail').next('ul').children().remove();
if (!ValidateEmail(AForm.mail.value)) {
$('#ajax_form #mail').next('ul').children().remove();
$('#ajax_form #mail').next('ul').append('<li>Wpisz poprawnie swój adres e-mail</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (AForm.phone_area.value == "") {
$('#ajax_form ul.phone_area').find('li').remove();
$('#ajax_form ul.phone_area').append('<li>Wpisz numer kierunkowy</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
} else if (AForm.phone_area.value != "") {
$('#ajax_form ul.phone_area').find('li').remove();
if (!ValidatePhoneArea(AForm.phone_area.value)) {
$('#ajax_form ul.phone_area').find('li').remove();
$('#ajax_form ul.phone_area').append('<li>Poprawny nr. kier. np. +48 lub 0048</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (AForm.phone.value == "") {
$('#ajax_form ul.phone').find('li').remove();
$('#ajax_form ul.phone').append('<li>Wpisz swój numer telefonu</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
} else if (AForm.phone.value != "") {
$('#ajax_form ul.phone').find('li').remove();
if (!ValidatePhone(AForm.phone.value)) {
$('#ajax_form ul.phone').find('li').remove();
$('#ajax_form ul.phone').append('<li>Wpisz poprawnie swój numer telefonu</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (AForm.title.value == "") {
$('#ajax_form #title').next('ul').children().remove();
$('#ajax_form #title').next('ul').append('<li>Wpisz tytuł wiadomości</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
else if (AForm.title.value != "") {
$('#ajax_form #title').next('ul').children().remove();
if (!ValidateTitle(AForm.title.value)) {
$('#ajax_form #title').next('ul').children().remove();
$('#ajax_form #title').next('ul').append('<li>Tytuł za długi</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (AForm.content_area.value == "") {
$('#ajax_form #content_area').next('ul').children().remove();
$('#ajax_form #content_area').next('ul').append('<li>Wpisz treść wiadomości</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
else if (AForm.content_area.value != "") {
$('#ajax_form #content_area').next('ul').children().remove();
if (!ValidateContent(AForm.content_area.value)) {
$('#ajax_form #content_area').next('ul').children().remove();
$('#ajax_form #content_area').next('ul').append('<li>Treść za długa</li>').css('display', 'block');
tekst = "Nieprawidłowe dane";
}
}
if (tekst != "") {
return false;
} else {
alert('send');
// return false;
$(function () {
// $('#ajax_form').on('click', '.submit', function () {
var $form = $(this).parents('form');
var sendData = $form.serialize();
var action = $form.attr('action');
// validateForm();
$.ajax({
type: "POST",
url: 'index.php?page=insertContact',
data: sendData,
dataType: 'html',
cache: false,
success: function (response) {
alert(1);
}
});
return false;
});
// });
// return true;
}
}
更新现在验证和 ajax 工作(页面不刷新),但不形成任何帖子。也许我在 php 中有错误..
<?php
$title = "";
if (isset($_GET['page']) && $_GET['page'] != ''){
$page = $_GET['page'];
switch ($page){
case 'contact' :
include "page.php";
break;
case 'insertContact':
$name = $_POST['name'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$title = $_POST['title'];
$content = $_POST['content_area'];
$lol = $name."\t".$mail."\t".$phone."\t".$title."\t".$content."\n";
$file = "baza.txt";
$fp = fopen($file, "a+b");
flock($fp, 2);
fwrite($fp, $lol );
flock($fp, 3);
fclose($fp);
mysql_query("insert into pages (pName, pMail, pPhone, pTitle, pContent) values ( '$name', '$mail', '$phone', '$title', '$content')");
header("Location: index.php");
break;
}
} else {
include "page.php";
}
?>
<强>1。约翰的帖子是正确的
<强>2。我更正:
if (tekst != "") {
return false;
} else {
return true;
}
Tnx 寻求帮助:)
最佳答案
首先,不要向表单的提交按钮添加点击处理程序。相反,向表单添加一个提交处理程序。其次,不要在 validateForm()
函数内执行此操作。
将以下代码放在 validateForm()
函数之外:
$(function() {
$('#ajax_form').submit(function(e) {
e.preventDefault();
var $form = $(this);
if (validateForm($form[0])) {
$.ajax('index.php?page=insertContact', {
type: 'POST',
data: $form.serialize(),
dataType: 'html',
cache: false,
success: function(html) {
alert('Response: ' + html);
}
});
}
});
}
您还必须使 validateForm()
函数返回 true
或 false
,具体取决于表单是否有效.
关于javascript - 使用 ajax 验证提交和保存表单 - 重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024714/
在 JSF2 应用程序中遇到验证属性的问题时,有两种主要方法。 使用 Annotation 在 ManagedBean 上定义验证 @ManagedBean public class MyBean {
我想实现一个不常见的功能,我认为 jquery 验证插件将是最好的方法(如果您在没有插件的情况下建议和回答,我们也会欢迎)。我想在用户在输入字段中输入正确的单词后立即隐藏表单。我试过这个: $("
我有几个下拉菜单(类名为month_dropdown),并且下拉菜单的数量不是恒定的。我怎样才能为它们实现 NotEqual 验证。我正在使用 jQuery 验证插件。 这就是我写的 - jQuery
我设法制作了这个网址验证代码并且它起作用了。但我面临着一个问题。我认为 stackoverflow 是获得解决方案的最佳场所。 function url_followers(){ var url=do
我目前正在使用后端服务,该服务允许用户在客户端应用程序上使用 Google Games 库登录。 用户可以通过他们的 gplay ID 向我们发送信息,以便登录或恢复旧帐户。用户向我们发送以下内容,包
我正在尝试验证输入以查看它是否是有效的 IP 地址(可能是部分地址)。 可接受的输入:172、172.112、172.112.113、172.112.113.114 Not Acceptable 输入
我从 Mongoose 验证中得到这条消息: 'Validator failed for path phone with value ``' 这不应该发生,因为不需要电话。 这是我的模型架构: var
我一直在尝试使用Python-LDAP (版本 2.4.19)在 MacOS X 10.9.5 和 Python 2.7.9 下 我想在调用 .start_tls_s() 后验证与给定 LDAP 服务
我正在处理一个仅与 IE6 兼容的旧 javascript 项目(抱歉...),我想仅在 VS 2017 中禁用此项目的 ESLint/CSLint/Javascript 验证/CSS 验证。 我知道
我正在寻找一种方法来验证 Spring 命令 bean 中的 java.lang.Double 字段的最大值和最小值(一个值必须位于给定的值范围之间),例如, public final class W
我正在尝试在 springfuse(JavaEE 6 + Spring Framework (针对 Jetty、Tomcat、JBoss 等)) 和 maven 的帮助下构建我的 webapps 工作
我试图在我们的项目中使用 scalaz 验证,但遇到了以下情况: def rate(username: String, params: Map[String, String]): Validation
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
我有一个表单,人们可以单击并向表单添加字段,并且我需要让它在单击时验证这些字段中的值。 假设我单击它两次并获取 2 个独立的字段集,我需要旋转 % 以确保它在保存时等于 100。 我已放入此函数以使其
在我的页面中有一个选项可以创建新的日期字段输入框。用户可以根据需要创建尽可能多的“截止日期”和“起始日期”框。就像, 日期_to1 || date_from1 日期到2 ||日期_from2 date
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
有没有办法在动态字段上使用 jquery 验证表单。 我想将其设置为必填字段 我正在使用 Jsp 动态创建表单字段。 喜欢 等等...... 我想使用必需的表单字段验证此表单字段。 最佳答
嗨,任何人都可以通过提供 JavaScript 代码来帮助我验证用户名文本框不应包含数字,它只能包含一个字符。 最佳答案 使用正则表达式: (\d)+ 如果找到匹配项,则字符串中就有一个数字。 关于J
我有两个输入字段holidayDate和Description(id=tags) $(document).ready(function() {
我遇到了这个问题,这些验证从电子邮件验证部分开始就停止工作。 我只是不明白为什么即使经过几天的观察,只是想知道是否有人可以在这里指出我的错误? Javascript部分: function valid
我是一名优秀的程序员,十分优秀!