我在表单的末尾有一个提交按钮.
我在提交按钮中添加了以下条件:
onClick="this.disabled=true;
this.value='Sending…';
this.form.submit();"
Run Code Online (Sandbox Code Playgroud)
但是当它移动到下一页时,参数没有通过,并且传递了空值.
我有以下HTML和jquery:
<html dir="ltr" lang="en">
<head>
</head>
<body>
<h2>Test disabling submit button for 1 minute...</h2>
<br/>
<p style="text-align:center">
<form id="yourFormId" name="yourFormId" method="post" action="#">
<input type="submit" class="submitBtn" value="I Accept"/>
</form>
</p>
<!--script to disable the submit button -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function () {
$(".submitBtn").click(function () {
$(".submitBtn").attr("disabled", true);
return true;
});
});
</script>
<!--script ends here-->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
按下时,提交按钮会在按下时被禁用.但是一旦按下它似乎没有执行提交.如果我删除了jquery以禁用该按钮,则该按钮会正常执行提交.
如何在执行提交后才禁用该按钮?上面的当前jquery似乎与提交操作冲突.
任何解决此问题的建议都会非常有帮助.
无论出于何种原因,尽管此代码确实刷新了页面,但没有字段被发布...
$('form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的编码方式?
我在我的asp.net mvc里面的布局视图中添加了以下脚本: -
$(document).ready(function () {
$('.btn.btn-primary').click(function () {
$(this).prop("disabled", true);
if (!$('form').valid()) {
$(this).prop("disabled", false);
return false;
}
});
$('form').change(function () {
$('.btn.btn-primary').prop("disabled", false);
});
Run Code Online (Sandbox Code Playgroud)
我的脚本的目的是禁用提交按钮,如果模型无效或用户更改表单值,则重新启用它们.上述脚本在IE和Firefox上运行良好,但在Chrome上我无法提交表单,因为当用户点击提交按钮时,该按钮将被禁用,但表单将不会被提交.知道如何在Chrome上解决这个问题吗?
我一直试图找到"正确"的方法来防止双重提交表格.SO上有很多相关的帖子,但没有一个在我这里找到.下面两个问题.
这是我的表格
<form method="POST">
<input type="text" name="q"/>
<button class="once-only">Send</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我第一次尝试禁用双提交:
$(document).ready(function(){
$(".once-only").click(function(){
this.disabled = true;
return true;
});
});
Run Code Online (Sandbox Code Playgroud)
这是这里建议的方法:使用JS/Jquery发布后禁用按钮.该帖子表明提交元素必须是输入而不是按钮,但测试两者没有区别.您可以使用这个小提琴自己尝试:http://jsfiddle.net/uT3hP/
如您所见,这会禁用该按钮,但也会阻止提交表单.在提交元素是按钮和输入元素的情况下.
问题1:为什么此单击处理程序停止提交表单?
搜索更多我找到这个解决方案(当我禁用提交按钮以防止双击时,为什么我的表单不发布?)
if($.data(this, 'clicked')){
return false;
} else{
$.data(this, 'clicked', true);
return true;
}
Run Code Online (Sandbox Code Playgroud)
你可以用这个小提琴来玩这个:http://jsfiddle.net/uT3hP/1/
这确实有效,但......
问题2: 这是我们能做的最好的吗?
我认为这将是一件基本的事情.方法1不起作用,方法2不起作用,但我不喜欢它并且感觉必须有一种更简单的方法.
我有一个mySQL数据库和一个表,其中创建了项目的新记录.创建的每个项目都有一个"项目名称"和一个事件创建日期(类型为DATETIME).
可以使用相同的名称创建两个项目,但如果它们由同一个用户快速连续创建,则可以安全地假设用户方面存在错误(单击两次,在事件变量通过时刷新浏览器,等等.).
如何编写SQL语句来检查是否已存在具有相同名称的记录,是否在最近10秒内添加了该语句?到目前为止,我有以下,虽然我不知道如何检查最后10秒.
select * from projects where user = 'johnsmith' AND projectname = 'test' AND active='y' AND DATE(projectcreatedon) = CURRENT_DATE AND DATEPART() < ....?
Run Code Online (Sandbox Code Playgroud) 我有一个表单,将数据传递给cc处理终端,以及编写PDF合同和收据.表单中内置了验证,我试图添加一个函数,在提供验证通过一次单击后禁用提交按钮.
我对帖子数据了解不多,但我想确定一下:
1. Still posts the data.
2. Still validates.
3. Does not allow the user to submit multiple times.
这是我的POST代码块:
<form method="POST" action="partner_register_ihg.php" onSubmit="javascript:return WebForm_OnSubmit();" id="docContainer" autoeventwireup="true" enctype="multipart/form-data" novalidate class="fb-toplabel fb-100-item-column fb-large selected-object" style="width: 800px;" data-form="preview">
Run Code Online (Sandbox Code Playgroud)
这是我的提交部分
<input type="submit" name="subbutton" onClick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("subbutton", "", true, "", "", false, false))' id="subbutton" class="fb-button-special" value="Submit" />
Run Code Online (Sandbox Code Playgroud)
这是我的验证码的一小部分
var RequiredFieldValidator30 = document.all ? document.all["RequiredFieldValidator30"] : document.getElementById("RequiredFieldValidator30");
RequiredFieldValidator30.controltovalidate = "item56_text_1";
RequiredFieldValidator30.errormessage = "Please enter the shipping zip code.";
RequiredFieldValidator30.display = "None";
RequiredFieldValidator30.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator30.initialvalue …
Run Code Online (Sandbox Code Playgroud) 强文本我试图阻止页面被缓存,因为我不希望用户能够重新提交已保存到数据库的表单。
我在views.py中尝试了以下内容
class ServiceCreate(LoginRequiredMixin, CreateView):
model = Service
form_class = ServiceCreateForm
@method_decorator(never_cache)
def dispatch(self, request, *args, **kwargs):
return super(ServiceCreate, self).dispatch(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
然而,这没有任何效果,因为当用户点击后退按钮时,整个页面会立即显示。请问如何防止缓存?
更新 我是 Django 新手,所以认为装饰器会指示浏览器不要缓存 - 我不明白还有服务器缓存。