javascript - Jquery:检查变量是否在keyup()函数之后定义

标签 javascript jquery onkeyup

正在使用 jquery 函数 keyup() 创建注册表单, 例如,如果输入是正确的,我将它分配给一个 txtuname 变量,然后我按下注册按钮,我需要知道所有的表单变量都是正确的和定义的。下面的代码不起作用:

<script type="text/javascript">      
$("document").ready(function() {
  $("#txtuname").keyup(function() {
    if ($("#txtuname").val().length < 6) {
      jQuery("label[for='txtuname']").text("user name is too short");
    }
    if ($("#txtuname").val().length >= 6) {
      var txtuname = $("#txtuname").val();
      jQuery("label[for='txtuname']").text("");
    }
  });
  $("#submitRegistration").click(function() {
    if (typeof txtuname == 'defined') {
      alert("defined");
    }
    if (typeof txtuname == 'undefined') {
      alert("undefined");
    }
  });
});
</script>

最佳答案

修改后的代码。这段代码的要点是 txtuname 应该在 keyup 事件监听器和 click 监听器的两个范围内都可见。因此,如果有更多元素,请创建验证对象,然后检查是否所有值都已设置且正确。是的,在您的代码中使用 $jQuery

$("document").ready(function(){

    var txtuname = null;

    $("#txtuname").keyup(function(){
        if($("#txtuname").val().length<6){
            jQuery("label[for='txtuname']").text("user name is too short");
        }

        if($("#txtuname").val().length>=6){
            txtuname=$("#txtuname").val();
            jQuery("label[for='txtuname']").text("");
        }
    });

    $("#submitRegistration").click(function(){
        if( txtuname == null || txtuname.length < 6)  ){
            alert("incorrect");
        }
        else{
            alert("correct");
        }

    });
});

更新 使用@Rhumborl 的注释检查变量,thx

关于javascript - Jquery:检查变量是否在keyup()函数之后定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460276/

相关文章:

javascript - HTML 根据 div 高度 chop 内容

javascript - 是否可以在 JavaScript 中克隆 html 元素对象?

javascript - 检查页面是否正在用 JavaScript 加载?

javascript - 文本框在打字时失去焦点

javascript - 如何通过输入操作循环?

javascript - 全日历 View 显示 goToDate 中断上一个、下一个和今天

javascript - 无法将 div 准确定位在另一个元素上

javascript - 如何为单个网页上的多个播放/暂停按钮制作单个 Javascript 脚本?

javascript - .on ('keyup' , function(){ 仅在按键时触发

jQuery KeyUp 和单击