- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在设置的联系表单有一个用于时间范围的下拉菜单区域。选择是:1. 正常配速2. 快节奏3. 紧迫的步伐。
我将其设置为每当选择快速或紧急时都会出现警告,告诉用户价格将随着这些选择而上涨。但是,此警告会延迟,直到用户单击第二个下拉菜单(预算)。无论如何,我可以在他们选择这两个选项之一后立即弹出它吗?
完整代码:
HTML
<div id="primary" class="col-md-6">
<div id="form-wrap">
<form action="contact.php" method="post" id="contactForm">
<input type="hidden" name="token" value="<?php echo $newToken; ?>" >
<div class="rowElem">
<ul><li><h5 class="formtitle">Your Name:</h5></li></ul>
<input type="text" id="name" class="required" name="name" placeholder="Name" minlength="2" />
</div><!-- End rowElem -->
<div class="rowElem">
<ul><li><h5 class="formtitle">Best Way to contact you:</h5></li></ul>
<input type="radio" name="contact" id="contactemail" value="Email" />
<label for="email">Email:</label><br /><br />
<div id="emailArea">
<input type="text" name="email" id="email" />
</div>
<input type="radio" name="contact" id="contactphone" value="Phone" />
<label for="phone">Phone:</label><br /><br />
<div id="phoneArea">
<input type="text" name="phone" id="phone" />
</div>
</div><!-- End rowElem -->
<div id="projectList">
<ul><li><h5 class="formtitle">Projects:</h5></li></ul>
<h6>See more in detail <a href="services.html">here</a>.</h6>
<div id="rowElem">
<input type="checkbox" name="project" id="addWeb" value="website" />
<label for="website"> Websites</label>
<div id="addWebArea">
<input type="checkbox" name="web" value="develop" />
<label for="website" class="checkedform"> Design</label>
<input type="checkbox" name="web" value="design" />
<label for="website" class="checkedform"> Develop</label>
</div>
</div><!-- End rowElem -->
<br /><br />
<div id="rowElem">
<input type="checkbox" name="project" id="addGraphic" value="graphic" />
<label for="graphic"> Graphics</label>
<div id="addGraphicArea">
<input type="checkbox" name="graphics" value="branding" />
<label for="graphic" class="checkedform"> Branding</label>
<input type="checkbox" name="graphics" value="posters" />
<label for="graphic" class="checkedform"> Posters</label>
<input type="checkbox" name="graphics" value="other" />
<label for="graphic" class="checkedform"> Other</label>
</div>
</div><!-- End rowElem -->
<br /><br />
<div id="rowElem">
<input type="checkbox" name="project" id="addApp" value="app" />
<label for="app"> Apps</label>
<div id="addAppArea">
<input type="checkbox" name="apps" value="Develop" />
<label for="app" class="checkedform"> Develop</label>
<input type="checkbox" name="apps" value="Design" />
<label for="app" class="checkedform"> Design</label>
</div>
</div><!-- End rowElem -->
<br /><br />
<div id="rowElem">
<input type="checkbox" name="project" id="addPres" value="presentations" />
<label for="presentation"> Presentations</label>
<div id="addPresArea">
<input type="checkbox" name="presentation" value="business" />
<label for="presentation" class="checkedform"> Business</label>
<input type="checkbox" name="presentation" value="event" />
<label for="presentation" class="checkedform"> Event</label>
</div>
</div><!-- End rowElem -->
<br /><br />
<div id="rowElem">
<input type="checkbox" name="project" id="tut" value="tutorials" />
<label for="tutorial"> Tutorials</label>
</div><!-- End rowElem -->
<br /><br />
<div id="rowElem">
<input type="checkbox" name="project" id="addOther" value="other" />
<label for="other"> Other</label>
<div id="addOtherArea">
<label for="other" class="checkedform"> Please Specify:</label>
<input type="text" name="other" value=" " />
</div>
</div><!-- End rowElem -->
</div><!-- End of ProjectList -->
<br /><br />
<div class="row">
<div id="rowElem" class="col-md-4">
<ul><li><h5 class="formtitle">Timeframe:</h5></li></ul>
<select name="timeFrame" id="timeFrame">
<option id="normal" value="normal">Normal Pace</option>
<option id="speedy" value="speedy">Speedy Pace</option>
<option id="urgent" value="urgent">URGENT Pace</option>
</select>
<div id="extraChargeArea">
<br /><br />
<h6 style="color:red">Please note that there will be an extra charge for speedy & urgent.</h6>
</div>
</div><!-- End rowElem -->
<div class="col-md-2">
<br /><br />
<img src="img/andsign.png" class="img-responsive" alt="&" />
</div>
<div id="rowElem" class="col-md-6">
<ul><li><h5 class="formtitle">Budget:</h5></li></ul>
<select name="budget">
<option value="Price1">$50 - $100</option>
<option value="Price2">$100 - $500</option>
<option value="Price3">$500 - $2,500</option>
<option value="Price4">$2,500 - $5,000</option>
<option value="Price5">$5,000 - $10,000</option>
<option value="Price2">$10,000 +</option>
</select>
<br /><br />
<h6>Pricing will vary, depending on complexity & timeframe.</h6>
<h6 style="color:red">Deposit of 40% required before start date.</h6>
</div><!-- End rowElem -->
</div><!-- End of Row -->
<br />
<div class="rowElem">
<input type="submit" value="Submit!" class="contactbutton btn btn-primary btn-lg" />
</div><!-- End rowElem -->
</form>
</div> <!-- End form-wrap -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-68528-29");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</div><!-- End of Primary Col -->
JS
$(function () {
$('#contactForm').jqTransform().validate({
submitHandler: function (form) {
$(form).ajaxSubmit({
success: function () {
$('#contactForm').hide();
$('#form-wrap').append("<p class='thanks'>Thanks! Your request has been sent.</p>")
}
});
}
});
$("#emailArea").hide();
$("#phoneArea").hide();
$("#phoneArea").hide();
$("#addWebArea").hide();
$("#addGraphicArea").hide();
$("#addAppArea").hide();
$("#addPresArea").hide();
$("#addOtherArea").hide();
$(".jqTransformRadio").click(function () {
if ($(".jqTransformRadio").eq(1).attr("class") == "jqTransformRadio jqTransformChecked") {
$("#phoneArea").slideDown();
$("#emailArea").hide();
} else {
$("#emailArea").slideDown();
$("#phoneArea").hide();
}
});
$('.jqTransformCheckbox').click(function () {
if ($('#addWeb').is(':checked')) {
$('#addWebArea').show();
} else {
$('#addWebArea').hide();
}
});
$('.jqTransformCheckbox').click(function () {
if ($('#addGraphic').is(':checked')) {
$('#addGraphicArea').show();
} else {
$('#addGraphicArea').hide();
}
});
$('.jqTransformCheckbox').click(function () {
if ($('#addApp').is(':checked')) {
$('#addAppArea').show();
} else {
$('#addAppArea').hide();
}
});
$('.jqTransformCheckbox').click(function () {
if ($('#addPres').is(':checked')) {
$('#addPresArea').show();
} else {
$('#addPresArea').hide();
}
});
$('.jqTransformCheckbox').click(function () {
if ($('#addOther').is(':checked')) {
$('#addOtherArea').show();
} else {
$('#addOtherArea').hide();
}
});
$("#extraChargeArea").hide();
$(document).on('change', '#timeFrame', function(){
if($('#normal').is(':selected'))
{$('#extraChargeArea').hide();}
else
{$('#extraChargeArea').show();}
});
});
PHP
<?php
session_start();
function getRealIp() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) { //check ip from share internet
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //to check ip is pass from proxy
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function writeLog($where) {
$ip = getRealIp(); // Get the IP from superglobal
$host = gethostbyaddr($ip); // Try to locate the host of the attack
$date = date("d M Y");
// create a logging message with php heredoc syntax
$logging = <<<LOG
\n
<< Start of Message >>
There was a hacking attempt on your form. \n
Date of Attack: {$date}
IP-Adress: {$ip} \n
Host of Attacker: {$host}
Point of Attack: {$where}
<< End of Message >>
LOG;
// Awkward but LOG must be flush left
// open log file
if($handle = fopen('hacklog.log', 'a')) {
fputs($handle, $logging); // write the Data to file
fclose($handle); // close the file
} else { // if first method is not working, for example because of wrong file permissions, email the data
$to = 'ashsquires27@icloud.com';
$subject = 'HACK ATTEMPT';
$header = 'From: support@mcdeavdesigns.com';
if (mail($to, $subject, $logging, $header)) {
echo "Sent notice to admin.";
}
}
}
function verifyFormToken($form) {
// check if a session is started and a token is transmitted, if not return an error
if(!isset($_SESSION[$form.'_token'])) {
return false;
}
// check if the form is sent with token in it
if(!isset($_POST['token'])) {
return false;
}
// compare the tokens against each other if they are still the same
if ($_SESSION[$form.'_token'] !== $_POST['token']) {
return false;
}
return true;
}
function generateFormToken($form) {
// generate a token from an unique value, took from microtime, you can also use salt-values, other crypting methods...
$token = md5(uniqid(microtime(), true));
// Write the generated token to the session variable to check it against the hidden field when the form is sent
$_SESSION[$form.'_token'] = $token;
return $token;
}
// VERIFY LEGITIMACY OF TOKEN
if (verifyFormToken('form1')) {
// CHECK TO SEE IF THIS IS A MAIL POST
if (isset($_POST['name'])) {
// Building a whitelist array with keys which will send through the form, no others would be accepted later on
$whitelist = array('token','name','email','phone','web','graphics','apps', 'presentation','project','other','timeFrame','budget', 'info');
// Building an array with the $_POST-superglobal
foreach ($_POST as $key=>$item) {
// Check if the value $key (fieldname from $_POST) can be found in the whitelisting array, if not, die with a short message to the hacker
if (!in_array($key, $whitelist)) {
writeLog('Unknown form fields');
die("Hack-Attempt detected. Please use only the fields in the form");
}
}
// PREPARE THE BODY OF THE MESSAGE
$message = '<html><body>';
$message .= 'McDeav Designs Possible Client';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>" . strip_tags($_POST['name']) . "</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['email']) . "</td></tr>";
$message .= "<tr><td><strong>Phone:</strong> </td><td>" . strip_tags($_POST['phone']) . "</td></tr>";
$message .= "<tr><td><strong>Projects:</strong> </td><td>" . strip_tags($_POST['project']) . "</td></tr>";
$message .= "<tr><td><strong>Timeframe:</strong> </td><td>" . strip_tags($_POST['timeFrame']) . "</td></tr>";
$message .= "<tr><td><strong>Budget:</strong> </td><td>" . strip_tags($_POST['budget']) . "</td></tr>";
$message .= "<tr><td><strong>Additional Info:</strong> </td><td>" . htmlentities($_POST['info']) . "</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
// MAKE SURE THE "FROM" EMAIL ADDRESS DOESN'T HAVE ANY NASTY STUFF IN IT
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i";
if (preg_match($pattern, trim(strip_tags($_POST['email'])))) {
$cleanedFrom = trim(strip_tags($_POST['email']));
} else {
return "The email address you entered was invalid. Please try again!";
}
// CHANGE THE BELOW VARIABLES TO YOUR NEEDS
$to = 'ashsquires27@icloud.com';
$subject = 'New Client';
$headers = "From: " . $cleanedFrom . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
if (mail($to, $subject, $message, $headers)) {
echo 'Your message has been sent.';
} else {
echo 'There was a problem sending the email.';
}
die();
}
} else {
if (!isset($_SESSION[$form.'_token'])) {
} else {
echo "Hack-Attempt detected. Got ya!.";
writeLog('Formtoken');
}
}
?>
头后
<?php
// generate a new token for the $_SESSION superglobal and put them in a hidden field
$newToken = generateFormToken('form1');
?>
CSS
.jqTransformSelectWrapper ul a {
display: block;
padding: 5px;
text-decoration: none;
color:#333;
background-color: #FFF;
font-size: 12px;
}
.jqTransformSelectWrapper ul a.selected {
background: #EDEDED;
color: #333;
}
.jqTransformSelectWrapper ul a:hover, .jqTransformSelectWrapper ul a.selected:hover {
background:#3582c4;
color: #fff;
}
/* -------------
* Hidden - used to hide the original form elements
* ------------- */
.jqTransformHidden {display: none;}
最佳答案
因为您要附加用户单击元素时发生的 click
处理程序,所以应附加在元素值更改时发生的 change
处理程序。尝试这个:
$("#extraChargeArea").hide();
$('#timeFrame').change(function(){
if($('#normal').is(':selected'))
{$('#extraChargeArea').hide();}
else
{$('#extraChargeArea').show();}
});
关于javascript - 联系表单中的显示-隐藏警告被延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20368157/
我在 mongodb 中的玩家和锦标赛之间存在多对多关系。 我希望能够一次将许多玩家添加到锦标赛中。如果没有 ajax,这很简单,但我们有一个包含数千名玩家的数据库,因此表单选择变得巨大。 我们想为此
这个问题已经有答案了: When should I use html's and when spring's in Spring MVC web app? (3 个回答) 已关闭 6 年前。 我正
我正在 C++ Builder XE4 上使用 VCL。 我有以下组件。 FormMain 具有 TButton *B_select; FormSelect(或DialogSelect)具有 TCom
如何在不影响表单控件的情况下更改表单的 alphablend? 德尔福XE7 最佳答案 此问题的一个解决方案是使用多设备应用程序(如果无法使用VCL)。 如果您需要保留透明的TForm,只需更改属性T
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在尝试扩展 Django 注册以包含我自己的注册表单。原则上这是相当简单的。我只需要编写自己的表单( CustomRegistrationForm ),它是原始表单( RegistrationFo
我正在尝试为我的网站实现聊天功能。为了做到这一点,我遵循了以下教程:https://channels.readthedocs.io/en/latest/tutorial/ 然后我稍微更改了代码以实现它
有一个问题,我需要用一个 html 表单提交两个相互关联的模型表单。我知道如何提交两个单独的表格,但是在相关模型表格的情况下外键让我发疯。 问题是,第二个表单应该用外键填充字段到第一个表单的实例。 在
我正在创建一个工具,允许某人输入食谱,然后将其保存为 XML 文件,我已经创建了 XSD,但我想知道如何在我的网页上制作一个表单以允许用户输入他们的食谱并遵守模式。我一直在研究 Ajax 和 Jque
在 .net win 表单(如 asp.net web 表单)中是否有可用的验证控件? 因为很难为我的每个控件设置正确的条件,所以我的表单中也有很多重复的代码。 正确的做法是什么? 最佳答案 看看这个
我有一个简短的问题。我正在学习如何使用 javascript 制作注册表,发现此链接非常有用。 http://www.w3resource.com/javascript/form/javascript
我正在开发一个项目,该项目将使用循环将许多表单添加到 mysql 数据库中。在 javascript 部分中,我无法让 var i 在函数 updatesum() 中工作。有人可以帮我吗? 我试图避免
在我的应用程序上有一个包含 2 个字段和一个保存按钮的表单。 在我的 onClick 结束时我需要什么来将光标返回到第一个字段。 我有这个来清除它们 txtData.setText("
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
<input type="text" name="textfield" onKeyPress="javascript:alert(event.
我正在构建的网站有一个登录表单,作为所有其他模板扩展的 base.html 模板的一部分;因此,我需要以某种方式处理每个页面上的登录/注销逻辑。 目前每个页面都在单独的 View 中加载,那么实现它的
我有一个表单类,看起来像.. #forms.py class ExampleForm(forms.Form): color = forms.CharField(max_length=25)
有没有办法在表单定义中给表单一个特殊的错误渲染函数?在 customizing-the-error-list-format 下的文档中它展示了如何为表单提供特殊的错误呈现函数,但似乎您必须在实例化表单
我正在处理由多个页面组成的表单,我想解决验证问题。 当我点击提交按钮时,当前页面上的所有字段都会在下方显示错误消息,但是如果我更改页面,那么我需要再次点击提交,因为这些字段未设置为已触摸。 如果我可以
是否可以附加到继承表单的 exclude 或 widgets 变量? 到目前为止,我有以下设置。 class AddPropertyForm(forms.ModelForm): num_mon
我是一名优秀的程序员,十分优秀!