我想在一天中单击一次后禁用用户的提交按钮,并在第二天重新启用此按钮。
<input type="submit" class="myButton" id="option" value="submit"/>
我需要的是,当我单击提交按钮时,表单会提交并禁用当天的按钮。然后它仅在第二天为该用户重新启用。
好吧,您应该以某种方式存储是否单击了按钮,如果是,则存储在什么日期/时间。或者只保留日期和时间,如果它是空的(只有第一次)它还没有被按下,否则只需检查它是多于还是少于一天前。
您可以将此值存储在数据库的文本文件中。
加载页面时,请执行以下伪代码:
<?
if ($dateLastPressed < $aDayAgo)
{
echo '<input type="submit" class="myButton" id="option" value="submit" disabled = "disabled"/>';
}
else
{
echo '<input type="submit" class="myButton" id="option" value="submit"/>';
}
我想最简单的方法是将点击的时间和日期存储在数据库中。我将假设您的用户具有某种独特的身份,该身份应该与点击的时间和日期一起存储。
当您为该用户呈现此特定表单时,检查数据库记录,将日期和时间与当前日期和时间进行比较,然后根据比较结果显示按钮。
<?php if ($dbRecord < $timeLimit) : ?>
<input type="submit" class="myButton" id="option" value="submit" disabled = "disabled"/>
<?php else : ?>
<input type="submit" class="myButton" id="option" value="submit"/>
<?php endif; ?>
您还需要在您的 PHP 脚本中进行某种验证,以确保用户在第一次提交表单后不只是通过按 Enter 向您的页面发送垃圾邮件。
<form name="from" id="myForm"></form>
$('#myForm').bind('submit', function(){
$.ajax({
type:'POST',
cache:false,
url:'/phpFiles/Form.php', //your path file
data:$('#myForm').serializeArray(),
success:function(data){
var msg = $('.dearUserMsg');
msg.slideDown(100, function(){
msg.html(data);});// esse e a resposta do segundo form
}
});
return false;
});
$('#myForm').bind('submit', function(){ // essa e a submit perfeito
$.ajax({
type:'POST',
cache:false,
url:'secondForm.php',
data:$('#myForm').serializeArray(),
success:function(data){
$.fancybox({
content: data,
width: '90%',
height: '50%',
scrolling: 'no',
overlayColor: '#060',
overlayOpacity: .3,
transitionIn: 'elastic',
transitionOut: 'elastic',
easingIn: 'easeInSine',
easingOut: 'easeOutSine',
titlePosition: 'outside',
hideOnOverlayClick: false,
hideOnContentClick: false
}); //('#mainTag')
}
});return false;
});
<input type="submit" value="Submit" id="sButton" />
<div class="dearUserMsg" style="display:none"></div>
不要忘记显示 none 以 SlideDown 工作
和它是一样的,但响应会出现在一个花哨的盒子里
在这两个例子中,提交按钮只工作一次,按钮将正常