【发布时间】:2015-02-26 08:08:49
【问题描述】:
我正在尝试优先考虑点击事件,以防两个事件点击和更改被触发。
我有一个类似于“ValidateOnChange”和“ValidateOnClick”的全局函数来验证文本框在更改和点击事件时的输入。
输入一些文字,它会显示错误消息。然后尝试输入正确的值并单击提交按钮,错误消失,这使用户单击按钮两次。在这里,我正在尝试修复此双击。
这是模拟代码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<div>Enter any string:</div>
<div><input type="text" id="txtInput" ></input></div>
<div id="divError" style="color: red; display: none;">Please enter 0</div>
<input type="button" value="Submit" id="btnSubmit" ></input>
<script type="text/javascript">
var mouseevent_var = null;
function ValidateOnChange(e) {
var input = $('#txtInput').val();
if (input == '0') {
$('#divError').hide();
} else {
$('#divError').show();
}
}
function ValidateOnClick(e){
alert("Hurray!!! You got it right!");
}
$('#txtInput').mousedown(function (e) {
mouseevent_var = e;
});
jQuery(document).ready(function(){
$('#btnSubmit').click(function(e){
ValidateOnClick(e);
});
$('#txtInput').change(function(e){
ValidateOnChange(e);
});
//User don't want error when they are typing in.
//$('#txtInput').keyup(function() {
//$('#txtInput').trigger("change");
//});
});
</script>
</body>
</html>
keyup 事件似乎是解决方案,但用户不希望在输入时弹出错误。
有没有办法列出所有触发的事件,以便我可以过滤提交按钮的“mousedown”和“mouseup”事件?或者有没有其他方法可以优先考虑点击事件?
【问题讨论】:
-
如果您使用的是 html5,您可以使用
oninput/input事件...我不确定您想要进行什么样的验证,因为您的功能似乎没有正在做或验证任何事情。根据验证,可以使用不同的事件处理程序来实现更顺畅的操作。另外,我不明白这是一个与asp.net相关的问题。 -
我没有得到你的要求。你能解释一下你想通过上面的代码完成什么吗?
-
你也可以
$('#divError').toggle(input != '0');
标签: javascript jquery asp.net events