我有以下jQuery代码,以防止双击按钮.它工作正常.我Page_ClientValidate()用来确保只有在页面有效时才会阻止双击.[如果存在验证错误,则不应设置标志,因为没有回发到服务器的启动]
是否有更好的方法可以防止在页面加载之前再次单击按钮?
我们isOperationInProgress = yesIndicator是否可以仅在页面导致回发到服务器时设置标志 ?是否适合event在用户第二次点击按钮之前调用它?
注意:我正在寻找一种不需要任何新API的解决方案
注意:这个问题不重复.在这里,我试图避免使用Page_ClientValidate().此外,我正在寻找一个event我可以移动代码的地方,以便我不需要使用Page_ClientValidate()
注意:我的方案中没有涉及ajax.该ASP.Net表格将被同步提交给服务器.javascript中的按钮单击事件仅用于防止双击.表单提交是使用ASP.Net同步的.
现在的代码
$(document).ready(function () {
var noIndicator = 'No';
var yesIndicator = 'Yes';
var isOperationInProgress = 'No';
$('.applicationButton').click(function (e) {
// Prevent button from double click
var isPageValid = Page_ClientValidate();
if (isPageValid) {
if (isOperationInProgress == noIndicator) {
isOperationInProgress = yesIndicator;
} else {
e.preventDefault();
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
参考文献:
@Peter Ivan在上述参考文献中注意到:
重复调用Page_ClientValidate()可能会导致页面过于突兀(多个警报等).
我收到错误MysqlError: Duplicate entry '1-5' for key 'PRIMARY',如下面的代码中所示.它只发生一次(我可以检测到,但它是随机的)我找不到原因(New Relic报道),但我无法重现,除了行号和给出的错误,我没有更多的信息.架构和代码如下.
num_rows()以某种方式返回一个不是1的值,即使它不应该.如果有人可以提供一些有关如何调试或修复的见解,那将会有所帮助.
这是我的location_items架构:
CREATE TABLE `phppos_location_items` (
`location_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`location` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`cost_price` decimal(23,10) DEFAULT NULL,
`unit_price` decimal(23,10) DEFAULT NULL,
`promo_price` decimal(23,10) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
`quantity` decimal(23,10) DEFAULT '0.0000000000',
`reorder_level` decimal(23,10) DEFAULT NULL,
`override_default_tax` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`location_id`,`item_id`),
KEY `phppos_location_items_ibfk_2` (`item_id`),
CONSTRAINT `phppos_location_items_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `phppos_locations` …Run Code Online (Sandbox Code Playgroud) 简单的形式没有验证.如果用户多次按下提交按钮(即由于互联网滞后或其他原因),我不希望表单被提交多次.我对客户端解决方案感兴趣.jQuery或简单的JavaScript是可以接受的.
谢谢.
可能重复:
如何防止客户端提交多个表单?
我们有一个项目管理工具,但是当用户在任务下提交日志时,他们会多次单击"提交"按钮.这会添加相同信息的几个条目.
我已经跟踪了PHP文件中的代码,我在网上看到了很多提交点击的解决方案.过去四五个小时我一直在玩,但不幸的是我无法得到任何工作.我希望有人可以提供一些帮助:
这是我在PHP文件中的代码:
<input type="submit" class="button" value="<?php echo $AppUI->_('update task'); ?>" onclick="updateTask();" />
Run Code Online (Sandbox Code Playgroud)
实际上我只想让用户点击按钮,然后单击一下.它显示为灰色或用户无法再点击.
谢谢