- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当验证失败时,我试图在联系表单的文本字段上添加红色边框和可能的背景色。到目前为止我得到了这个,但没有任何反应?
JS 脚本:
<script>
function checkforblank() {
var errormessage = "";
if (document.getElementById('fornavn').value == "") {
errormessage += "skriv dit fornavn \n";
document.getElementById('fornavn').style.borderColor = "red";
if (document.getElementById('efternavn').value == "") {
errormessage += "skriv dit fornavn \n";
document.getElementById('efternavn').style.borderColor = "red";
if (errormessage != "") {
alert(errormessage);
return false;
}
}
</script>
表格代码:(表格要长得多,这只是我正在测试的部分)
<form action="contact.php" method="post" id="comments_form">
<div class="row">
<div class="input3">
<input type="text" id="fornavn" class="detail3" name="fornavn" onsubmit="return checkforblank()" placeholder="Fornavn*" value="<?php echo isset($_POST['fornavn'])? $_POST['fornavn'] : ''; ?>" /><?php if(in_array('fornavn', $validation)): ?><span class="error"><?php echo $error_messages['fornavn']; ?></span><?php endif; ?>
</div><!-- slut .input -->
<div class="input3">
<input type="text" id="efternavn" class="detail3" name="efternavn" placeholder="Efternavn*" value="<?php echo isset($_POST['efternavn'])? $_POST['efternavn'] : ''; ?>" /><?php if(in_array('efternavn', $validation)): ?><span class="error"><?php echo $error_messages['efternavn']; ?></span><?php endif; ?>
</div><!-- slut .input -->
</div><!-- slut .row -->
PHP 验证:
<?php
function validate_email_address($email = false) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? true : false;
}
function remove_email_injection($field = false) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
// Set email variables
$email_to = 'mail@sverkel.dk';
$email_subject = 'Formular: Kontakt os';
// Set required fields
$required_fields = array('fornavn', 'efternavn', 'vejnavn', 'nr', 'postnr', 'by', 'email', 'mobil', 'fastnet', 'besked');
// set error messages
$error_messages = array(
'fornavn' => 'Skriv dit fornavn',
'efternavn' => 'Skriv dit efternavn',
'vejnavn' => 'Skriv dit vejnavn',
'nr' => 'Fejl',
'postnr' => 'Skriv post nr.',
'by' => 'Skriv bynavn',
'email' => 'Skriv e-mail adresse',
'mobil' => 'Skriv mobilnummer',
'fastnet' => 'Skriv fastnetnummer',
'besked' => 'Skriv en besked'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// boolean variable to validate recaptcha
$valid_recaptcha = false;
if(isset($_POST['submit'])){
// First validate recaptcha
$url = 'https://www.google.com/recaptcha/api/siteverify';
$privatekey = "6LfEZw0TAAAAAOkn4MM4DfsMjmYoG0WetmhuLzmQ";
$response = file_get_contents($url."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);
$data = json_decode($response);
if($data->success) {
$valid_recaptcha = true;
}
if($valid_recaptcha){
// now process your form here. sanitize and validate input fields
// Sanitise POST array
foreach($_POST as $key => $value){
$_POST[$key] = remove_email_injection(trim($value));
}
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)){
array_push($validation, $field);
}
// check there is information in the field?
if($_POST[$field] == ''){
array_push($validation, $field);
}
// validate the email address supplied
if($field == 'email'){
if(!validate_email_address($_POST[$field])){
array_push($validation, $field);
}
}
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'Ny besked fra kontaktformular: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value){
if($key != 'submit' && $key != 'g-recaptcha-response') $email_content .= $key . ': ' . $value . "\n\n";
}
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);
// Update form switch
$form_complete = TRUE;
}
}
}
?>
CSS 代码:
#formWrap {
width:560px;
margin-top:10px;
margin-left:10px;
background:#FFF;
border:1px solid #FF0004;
-moz-border-radius:10px;
-moz-box-shadow:2px #DFDFDF;
-webkit-border-radius:10px;
-webkit-box-shadow:2px #DFDFDF;
padding:16px 10px 10px;
}
#formWrap #form {
border-top:1px solid #EEE;
width:560px;
}
#form .row {
border-bottom:1px solid #EEE;
display:block;
line-height:38px;
overflow:auto;
padding: 14px 0px;
width:100%;
}
#form .row .label {
font-size:16px;
font-weight:bold;
font-family:Helvetica, Arial, sans-serif;
width:120px;
text-align:right;
float:left;
padding-right:10px;
margin-right:10px;
}
#form .row .input {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
#form .row .input2 {
display: inline-block;
float:left;
margin-right:25px;
width:50px;
}
#form .row .input3 {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
#form .row .input4 {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
#form .row .input5 {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
#form .row .input6 {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
#form .row .input7 {
display: inline-block;
float:left;
margin-right:10px;
width:auto;
}
.detail {
width:252px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail2 {
width:47px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail3 {
width:252px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail4 {
width:531px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail5 {
width:232px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail6 {
width:100px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.detail7 {
width:403px;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px 8px;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.mess {
width:531px;
max-width:531px;
height:200px;
overflow:auto;
font-family:Arial, sans-serif;
font-size:13px;
padding:7px 8px;
line-height:1em;
margin:0;
display:block;
border-radius:5px 5px 5px 5px;
background:#EDEDED;
border:1px solid #CCC;
}
.recaptcha {
color:#FF0004;
display:block;
font-family:Arial, sans-serif;
font-size:12px;
background-image:url(../images/x.png);
background-repeat:no-repeat;
background-position:left 6px;
padding-left:30px;
margin-left: 200px;
}
.detail:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail2:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail3:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail4:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail5:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail6:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.detail7:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
.mess:focus{
background-color:#FFF;
border:1px solid #999;
outline:none;
}
#form .row .context {
color:#999;
font-size:11px;
font-style:italic;
line-height:40px;
font-family:Arial, sans-serif;
width:200px;
float:left;
}
#form #submit {
font-family:Arial, sans-serif;
margin-top:25px;
margin-left:0px;
color:#000;
font-size:16px;
padding:10px;
}
span.error {
color:#FF0004;
display:block;
font-family:Arial, sans-serif;
font-size:12px;
background-image:url(../images/x.png);
background-repeat:no-repeat;
background-position:left 6px;
padding-left:30px;
}
#formWrap h3 {
font-family:Arial, sans-serif;
display: inline-block;
margin-left:-1px;
}
#formWrap h6 {
font-family:Arial;
font-size: 12px;
font-weight: 100;
font-style: italic;
margin-left:-1px;
}
input.error {
border:1px solid #FF0004;
font-size:16px;
font-weight:bold;
font-family:Helvetica, Arial, sans-serif;
width:120px;
text-align:right;
float:left;
padding-right:10px;
margin-right:10px;
}
提供的代码:新!
<script>
function checkForBlank() {
var form = document.getElementById('comments_form');
for(var i = 0; i < form.elements.length; i++) {
if(form.elements[i].type != 'submit') {
if(form.elements[i].value == '') {
form.elements[i].style.borderColor = 'red';
}
}
}
}
</script>
表单代码:
<form action="contact.php" method="post" id="comments_form">
<div class="row">
<div class="input3">
<input type="text" id="fornavn" class="detail3" name="fornavn" placeholder="Fornavn*" value="<?php echo isset($_POST['fornavn'])? $_POST['fornavn'] : ''; ?>" /><?php if(in_array('fornavn', $validation)): ?><span class="error"><?php echo $error_messages['fornavn']; ?></span><?php endif; ?>
</div><!-- slut .input -->
<div class="input3">
<input type="text" id="efternavn" class="detail3" name="efternavn" placeholder="Efternavn*" value="<?php echo isset($_POST['efternavn'])? $_POST['efternavn'] : ''; ?>" /><?php if(in_array('efternavn', $validation)): ?><span class="error"><?php echo $error_messages['efternavn']; ?></span><?php endif; ?>
</div><!-- slut .input -->
</div><!-- slut .row -->
提交代码:
<div class="submit">
<input type="submit" id="submit" name="submit" onclick="checkForBlank()" value="Send besked" />
</div><!-- .submit -->
最佳答案
你忘了在 if 语句后面加上 }。onsubmit 适用于表单而不是输入。这没有 php 部分应该工作:
<form onsubmit="checkforblank()">
<input type="text" id="fornavn" class="detail3" name="fornavn" onsubmit="return checkforblank()" placeholder="Fornavn*" value="">
<input type="text" id="efternavn" class="detail3" name="efternavn" placeholder="Efternavn*" value="">
<input type="submit">
</form>
<script>
function checkforblank() {
var errormessage = "";
if (document.getElementById('fornavn').value == "") {
errormessage += "skriv dit fornavn \n";
var input = document.getElementById('fornavn').style.borderColor = 'red';
}
if (document.getElementById('efternavn').value == "") {
errormessage += "skriv dit fornavn \n";
document.getElementById('efternavn').style.borderColor = "red";
}
if (errormessage != "") {
alert(errormessage);
return false;
}
}
</script>
关于javascript - 验证失败时文本字段周围有红色边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33825672/
我目前有一堆看起来像这样的行: txt = "Can't print the value for "+arguments[1]+" before it's set"; 我在做 $('#mydiv').
我有一个网站,我试图以移动格式显示,但在宽屏幕上显示。我确信 iframe 是要走的路。 我正在尝试将 iframe 加载到 iPhone 的图像中。你可以看到一个例子 here . 一旦你看到它,你
我正在尝试使用 Xcode 中的 Storyboard创建如下所示的 View 。 为此,我添加了一个按钮和一个带有约束的标签,但这就是我得到的结果。文本不会从复选框下方开始。实现此目的的一种方法是创
我正在与 css 斗争以将文本包装在 div 中。我应用了空格、分词但没有任何反应。 链接 http://fiduciaryconsulting.org/index.php/services/90-s
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
正如标题所说 - 如何将文本环绕在伪元素周围?请参见下面的示例: .area { position: relative; } .area:before { content: '';
每次我尝试在 CSS 中做一些看似简单的事情时,它都行不通。 我有一个包含 460x160 图像的内容 div。我想做的就是将图片放在右下角,然后用文字环绕它。 text text
每次我尝试在 CSS 中做一些看似简单的事情时,它都行不通。 我有一个包含 460x160 图像的内容 div。我想做的就是将图片放在右下角,然后用文字环绕它。 text text
我有一个流式布局,它已经为我工作了一段时间。我漂浮 不是右就是左。一个 div 通常会有一个图像和一个标题。 文本项正确地环绕在 float 周围。但是某些元素没有: 将做以下两件事之一:他们要么侵入
这是我的问题。我在另一个 div 中有内联 block div。 .timeEvents { width: 100%; overflow: hidden; text-align: cent
使用float,我可以让文本环绕figure标签中的图像,而不是环绕figcaption标签,因为出色地。将 float 添加到 figcaption 不会这样做。有什么建议吗? 下面的代码在这里:h
如何让 div 2 环绕 div 1 ? (两个 div 都包含文本) +---++------------------+ | || | | 1 ||
我有一个场景,我需要转换一个可以被 *this 链接的函数返回 std::optional>而不是 T& (原因超出了这个问题的范围)。我使用 std::reference_wrapper 的原因是因
我想我彻底搜索了这个网站,但找不到我的问题的答案;我也认为这很简单,但是经过几个小时的困惑之后,我已经放弃并决定寻求帮助...... 这是我的问题;我有一个 DIV,里面有两个 DIV;第一个 DIV
我有一个文本区域字段,其右上角有一个 div 框。我进行了广泛的搜索,但找不到一种方法可以让输入文本区域的文本环绕 div。 #wrapper { position: relative; wi
所以我在使用 FancyBox 时遇到了这个问题,当滚动页面主体(主页)时,框会随机向左和顶部移动位置。 附上 GIF 演示问题: 据我所知,我正在使用 Fancybox v2。 网址是here (在
我的 coinslider 周围有一个容器 div。我想围绕这个容器 div 包装文本。如何实现这一目标? 现在我的 HTML 设置如下: 我的 CSS 是这样设置的: #mycontain
每次我尝试在 CSS 中做一些看似简单的事情时,它都行不通。 我有一个包含 460x160 图像的内容 div。我想做的就是将图片放在右下角,然后用文字环绕它。 text text
我有一个名为“content”的 DIV,其中我有一个图像作为边框/框架,我想绕过它。我都有一个大的整个框架(左、右、上、下),它与它应该的宽度相匹配,而且我把它切碎了,所以我有四个单边框图像(lef
我正在使用 fieldset 在 div 周围创建带标题的边框。 这是代码: Sproc Details:
我是一名优秀的程序员,十分优秀!