- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的 html 网站上编辑 Simplemodal 联系表单以创建一个表单。在我遇到 javascript 导致获取未定义值的问题之前,所有的编辑工作都进行得很顺利。我正在尝试添加一些字段并删除消息和复选框字段。第一个 block 是原始代码,我添加了第二个 block :
if (!$('#contact-container #contact-name').val()) {
contact.message += 'First Name is required. ';
fail = true;
}
if (!$('#contact-container #contact-lname').val()) {
contact.message += 'Last Name is required. ';
fail = true;
}
第一个 if 语句工作正常,但是第二个语句在处理 js 时有一个未定义的值。实际表格显示正常,但此处理不起作用。以下代码是我在文件中的内容:
<label for='contact-name'>First Name:</label>
<input type='text' id='contact-name' class='contact-input' name='name' tabindex='1001' />
<label for='contact-lname'>Last Name:</label>
<input type='text' id='contact-lname' class='contact-input' name='lname' tabindex='1002' />
原文完好无损,我只是加了最后两行。任何帮助,将不胜感激。谢谢!
编辑:http://www.ericmmartin.com/projects/simplemodal-demos/我遇到问题的代码是 contact.js,我上面修改的行有问题。
编辑:这是通过网页激活简单模态的代码
<div id='container'>
<div id='content'>
<div id='contact-form'>
<h3><a href='#' class='contact'>Support the Cause!</a></h3>
</div>
</div>
</div>
修改后的 contact.js 在下面并使用 jquery 和 jquerySimplemodal(它们都不会影响代码处理的完成方式)。其他两个 js 文件通过上面的链接。
jQuery(function ($) {
var contact = {
message: null,
init: function () {
$('#contact-form input.contact, #contact-form a.contact').click(function (e) {
e.preventDefault();
// load the contact form using ajax
$.get("data/contact.php", function(data){
// create a modal dialog with the data
$(data).modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["15%",],
overlayId: 'contact-overlay',
containerId: 'contact-container',
onOpen: contact.open,
onShow: contact.show,
onClose: contact.close
});
});
});
},
open: function (dialog) {
// add padding to the buttons in firefox/mozilla
if ($.browser.mozilla) {
$('#contact-container .contact-button').css({
'padding-bottom': '2px'
});
}
// input field font size
if ($.browser.safari) {
$('#contact-container .contact-input').css({
'font-size': '.9em'
});
}
// dynamically determine height
var h = 280;
if ($('#contact-subject').length) {
h += 26;
}
if ($('#contact-cc').length) {
h += 22;
}
var title = $('#contact-container .contact-title').html();
$('#contact-container .contact-title').html('Loading...');
dialog.overlay.fadeIn(200, function () {
dialog.container.fadeIn(200, function () {
dialog.data.fadeIn(200, function () {
$('#contact-container .contact-content').animate({
height: h
}, function () {
$('#contact-container .contact-title').html(title);
$('#contact-container form').fadeIn(200, function () {
$('#contact-container #contact-name').focus();
// $('#contact-container .contact-cc').click(function () {
// var cc = $('#contact-container #contact-cc');
// cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
// })
;
// fix png's for IE 6
if ($.browser.msie && $.browser.version < 7) {
$('#contact-container .contact-button').each(function () {
if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {
var src = RegExp.$1;
$(this).css({
backgroundImage: 'none',
filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="crop")'
});
}
});
}
});
});
});
});
});
},
show: function (dialog) {
$('#contact-container .contact-send').click(function (e) {
e.preventDefault();
// validate form
if (contact.validate()) {
var msg = $('#contact-container .contact-message');
msg.fadeOut(function () {
msg.removeClass('contact-error').empty();
});
$('#contact-container .contact-title').html('Sending...');
$('#contact-container form').fadeOut(200);
$('#contact-container .contact-content').animate({
height: '80px'},
function () {
$('#contact-container .contact-loading').fadeIn(200, function () {
$.ajax({
url: 'data/contact.php',
data: $('#contact-container form').serialize() + '&action=send',
type: 'post',
cache: false,
dataType: 'html',
success: function (data) {
$('#contact-container .contact-loading').fadeOut(200, function () {
$('#contact-container .contact-title').html('Thank you!');
msg.html(data).fadeIn(200);
});
},
error: contact.error
});
});
});
}
else {
if ($('#contact-container .contact-message:visible').length > 0) {
var msg = $('#contact-container .contact-message div');
msg.fadeOut(200, function () {
msg.empty();
contact.showError();
msg.fadeIn(200);
});
}
else {
$('#contact-container .contact-message').animate({
height: '30px'
}, contact.showError);
}
}
});
},
close: function (dialog) {
$('#contact-container .contact-message').fadeOut();
$('#contact-container .contact-title').html(''); <!--here-->
$('#contact-container form').fadeOut(200);
$('#contact-container .contact-content').animate({
height: 40
}, function () {
dialog.data.fadeOut(200, function () {
dialog.container.fadeOut(200, function () {
dialog.overlay.fadeOut(200, function () {
$.modal.close();
});
});
});
});
},
error: function (xhr) {
alert(xhr.statusText);
},
validate: function () {
contact.message = '';
var fail = false;
if (!$('#contact-name').val()) {
contact.message += 'First Name is required. ';
fail = true;
}
//#contact-container
if (!$('#contact-lname').val()) {
contact.message += 'Last Name is required. ';
fail = true;
}
var email = $('#contact-email').val();
if (!email) {
contact.message += 'Email is required. ';
fail = true;
}
else {
if (!contact.validateEmail(email)) {
contact.message += 'Email is invalid. ';
fail = true;
}
}
var zip = $('#contact-zip').val();
if (!zip) {
contact.message += '2' + zip + '2';
contact.message += 'ZIP is required. ';
fail = true;
}
else{
if (!contact.isValidZipCode(zip)) {
contact.message += 'ZIP is invalid. ';
fail = true;
}
}
var age = $('#contact-age').val();
if (!age){
contact.message += 'Age is required. ';
fail = true;
}
else{
if (!contact.validateAge(age)) {
contact.message += 'Age is invalid. ';
fail = true;
}
}
if (!$('#contact-message').val()) {
contact.message += 'Message is required.';
fail = true;
}
//if (contact.message.length > 0) {
// return true;
//}
else {
if (fail) return false;
else return true;
}
},
isValidZipCode: function (value) {
var re = /^\d{5}([\-]\d{4})?$/;
return (re.test(value));
},
validateAge: function (age) {
if (isNan(age)) return false;
var a = parseInt(age);
if (a > 0 && a < 100) return true;
else return false;
},
validateEmail: function (email) {
var at = email.lastIndexOf("@");
// Make sure the at (@) sybmol exists and
// it is not the first or last character
if (at < 1 || (at + 1) === email.length)
return false;
// Make sure there aren't multiple periods together
if (/(\.{2,})/.test(email))
return false;
// Break up the local and domain portions
var local = email.substring(0, at);
var domain = email.substring(at + 1);
// Check lengths
if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
return false;
// Make sure local and domain don't start with or end with a period
if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
return false;
// Check for quoted-string addresses
// Since almost anything is allowed in a quoted-string address,
// we're just going to let them go through
if (!/^"(.+)"$/.test(local)) {
// It's a dot-string address...check for valid characters
if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
return false;
}
// Make sure domain contains only valid characters and at least one period
if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
return false;
return true;
},
showError: function () {
$('#contact-container .contact-message')
.html($('<div class="contact-error"></div>').append(contact.message))
.fadeIn(200);
}
};
contact.init();});
这是javascript调用的制作表单的PHP文件
$output = "<div style='display:none'>
<div class='contact-top'></div>
<div class='contact-content'>
<div class='contact-loading' style='display:none'></div>
<div class='contact-message' style='display:none'></div>
<form action='#' style='display:none'>
<label for='contact-name'>First Name:</label>
<input type='text' id='contact-name' class='contact-input' name='name' tabindex='1001' />
<label for='contact-lname'>Last Name:</label>
<input type='text' id='contact-lname' class='contact-input' name='lname' tabindex='1002' />
<label for='contact-email'>Email:</label>
<input type='text' id='contact-email' class='contact-input' name='email' tabindex='1003' />
<label for='contact-zip'>ZIP:</label>
<input type='text' id='contact-zip' class='contact-input' name='zip' tabindex='1004' />
<label for='contact-age'>Age:</label>
<input type='text' id='contact-age' class='contact-input' name='age' tabindex='1005' />
最佳答案
试试这个选择器 $('#contact-lname')
而不是你的。在我看来你的#contact-lname
不在 #contact-container
中,或者你有重复的容器 id="contact-container"
或 id="contact-lname"
在您的页面上。
关于php - JavaScript 验证简单模态形式的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13410022/
在 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
我是一名优秀的程序员,十分优秀!