Webforms:在确认代码输入后启用提交按钮

问题描述:

我正在使用WebForms应用程序,并且我们希望为应用程序中某个特定点的用户提供一个减速缓冲区,因为缺乏更好的术语。有一个特殊的行动不应该被撤销。所以当他们点击按钮来做这个动作时,我们想显示一个小的确认窗口,让他们输入一个随机的字符串,我们给他们。一旦他们输入该字符串,并且它匹配相应的标签,提交按钮就变为启用并且他们可以执行该操作。但是对于我来说,我无法找到一个用WebForms做这个客户端的好方法。有没有一种简单的机制来使用这种类型的工作流程而没有大量的回发事件?Webforms:在确认代码输入后启用提交按钮

注意:这是一个内部应用程序,在这种情况下,高安全性不是真正的必要条件。正如我所说的,这是为了让用户稍微放慢速度。

+0

听起来像一个CAPTCHA.There任何理由不使用它? – 2010-09-23 14:29:58

这与mint.com confimration风格类似。

将JavaScript添加到文本框onChangeonKeyUp事件,那里做你的检查并启用按钮。

例如:

<script type="text/javascript"> 
function checkConfirmationText(){ 
// Check if value of entered text = value of hidden text 
var isOk = document.getElementById('confirmation-label').value == document.getElementById('confirmation-text').value); 

// Show/Hide button depending on the text 
document.getElementById('btn-submit').style.dispaly = isOk ? '' : 'none'; 
} 
</script> 

<!-- HTML --> 
<input type="hidden" id="confirmation-label" value="DELETE" /> 
Enter "DELETE": <input type="text" id="confirmation-text" value="" onkeyup="checkConfirmationText()" /> 
<input type="submit" id="btn-submit" style="display:none" /> 
+0

这个想法绝对正确,对javascript的上下文和可读性做了一些小的改变。 – Matt 2010-09-23 19:00:09

您可以生成javascript方法来检查服务器端代码(包括方法中的代码)并使用registerclientscriptblock(或任何当前方法),然后使用onblur调用该方法。