在Javascript中发出一次警报
我在HTML表单中有两个文本输入字段,我想使用JavaScript进行必要的验证。如果第二个文本字段中有输入,而第一个文本输入字段为空或留空,则我的JavaScript应发出警告“请先输入text1” 然而,警报框总是会弹出不止一次,用户可能会觉得很烦人。首先,当我在text2中键入内容时。第二,当我点击text1输入内容时。是否有办法让警报框仅显示一次,可能仅在第一个场景中显示在Javascript中发出一次警报,javascript,alert,onchange,Javascript,Alert,Onchange,我在HTML表单中有两个文本输入字段,我想使用JavaScript进行必要的验证。如果第二个文本字段中有输入,而第一个文本输入字段为空或留空,则我的JavaScript应发出警告“请先输入text1” 然而,警报框总是会弹出不止一次,用户可能会觉得很烦人。首先,当我在text2中键入内容时。第二,当我点击text1输入内容时。是否有办法让警报框仅显示一次,可能仅在第一个场景中显示 <script> $("#text2").on("change",function(){ var t1
<script>
$("#text2").on("change",function(){
var t1 = document.getElementById("text1").value;
if (t1 == "")
alert("Please enter text1 first.");
});
</script>
$(“#text2”)。在(“change”,function(){
var t1=document.getElementById(“text1”).value;
如果(t1==“”)
警报(“请先输入text1。”);
});
使用jQuery的.one()
函数,而不是.on()
$(“#text2”).1(“更改”,函数(事件){
var t1=document.getElementById(“text1”).value;
如果(t1==“”){
警报(“请先输入text1。”);
}
}
这里有一点UX答案,但是
用户会发现任何数量的警报都很烦人(零除外)
当呈现多个输入时,假设它们可以以任何顺序填写。大多数人会从第一个到最后一个,但有时更自由地填写可能更方便
如果在用户完成第一个输入之前,不允许用户在第二个输入中键入任何内容,则暂时不显示。仅显示第一个输入,获取用户的输入,然后显示第二个输入
最后,如果适用,请充分利用
。首先,这是非常糟糕的用户体验™. 出于以下几个原因,您不应该这样做:
$('input#text1')。更改(函数(){
var$i2=$('input#text2');
if($(this).val().length()==0){
$i2.attr('disabled','disabled');
$12.val(“”);
}否则{
$i2.removeAttr('disable');
}
});
用户会发现任何警报都很烦人……这不是语法有效的JavaScript。请使用诸如isShow之类的布尔值。或者只需在输入字段下添加警告,并在输入验证后将其删除,这样就不那么烦人了
<script>
$("#text2").one("change", function (event) {
var t1 = document.getElementById("text1").value;
if (t1 === "") {
alert("Please enter text1 first.");
}
}
</script>
<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.");
} });