在Javascript中提醒一次
alert once in Javascript
本文关键字:一次 Javascript 更新时间:2024-07-05
我在HTML表单中有两个文本输入字段,我想使用JavaScript进行所需的验证。如果在第二个文本字段中有输入,而第一个文本输入字段为空或留空,我的JavaScript应该提醒"请先输入text1。"
然而,提醒框总是弹出不止一次,用户可能会觉得很烦人。首先,当我在text2中键入内容时。第二,当我点击text1输入内容时。有没有办法让警报框只显示一次,可能只在第一种情况下显示?
<script>
$("#text2").on("change",function(){
var t1 = document.getElementById("text1").value;
if (t1 == "")
alert("Please enter text1 first.");
});
</script>
使用jQuery的.one()
函数,而不是.on()
<script>
$("#text2").one("change", function (event) {
var t1 = document.getElementById("text1").value;
if (t1 === "") {
alert("Please enter text1 first.");
}
}
</script>
这里有点用户体验的答案,但是。。。
用户会发现任何数量的警报都很烦人(零除外)。
当呈现多个输入时,假设它们可以按任何顺序填写。大多数人会从第一名到最后一名,但有时填写更多的自由式可能更方便。
如果您不想允许用户在完成第一个之前在第二个中键入任何内容,则暂时不显示。只显示第一个输入,获取用户的输入,然后显示第二个输入。
最后,在适用的情况下,充分利用<input ... required />
。
首先,这是非常糟糕的用户体验™.你不应该这么做有几个原因:
- 显示界面常见误用的警报很烦人
- 这并不妨碍用户填写输入
- 您的解决方案无法引导用户正确(预期)使用您的界面
让我提出一个稍微好一点的建议:
根据另一个输入的空性禁用和启用一个输入
<script>
$('input#text1').change(function() {
var $i2 = $('input#text2');
if($(this).val().length() == 0) {
$i2.attr('disabled','disabled');
$i2.val('');
} else {
$i2.removeAttr('disable');
}
});
</script>
$("#text2").change(function() {
if ($("#text1").val() === ""){
alert("Please enter text1 first.");
} });
相关文章:
- 显示数字,然后每5秒随机更改一次(javascript)
- 使函数只运行一次(Javascript)
- 仅当javascript的新内容出现时,才每3秒更新一次javascript
- 每天递减一个变量一次 - Javascript
- 每个用户/浏览器会话只加载一次Javascript
- 使用Greasemonkey每5秒执行一次Javascript
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- 如何只包含一次javascript文件
- 每周运行一次 JavaScript 函数
- 每天为每个新用户运行一次 JavaScript 函数
- 每 10 次访问(重新加载)显示一次 JavaScript 函数
- 简单嵌套的 setTimeout() 只运行一次 (JavaScript)
- 如何只添加一次JavaScript库
- 每X分钟运行一次JavaScript命令
- 每两次切换播放器一次JavaScript-AngularJS
- 追加一次javascript href link
- 当使用局部视图时,只添加一次javascript代码
- 查找匹配的img src并删除它存在不止一次- Javascript
- 加载cookie时只重载一次javascript页面
- 如何使这个函数运行不止一次JavaScript/jQuery