Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中发出一次警报_Javascript_Alert_Onchange - Fatal编程技术网

在Javascript中发出一次警报

在Javascript中发出一次警报,javascript,alert,onchange,Javascript,Alert,Onchange,我在HTML表单中有两个文本输入字段,我想使用JavaScript进行必要的验证。如果第二个文本字段中有输入,而第一个文本输入字段为空或留空,则我的JavaScript应发出警告“请先输入text1” 然而,警报框总是会弹出不止一次,用户可能会觉得很烦人。首先,当我在text2中键入内容时。第二,当我点击text1输入内容时。是否有办法让警报框仅显示一次,可能仅在第一个场景中显示 <script> $("#text2").on("change",function(){ var t1

我在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>

$(“#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.");
    }  });