Javascript检查用户输入没有变化

时间:2014-03-04 22:46:44

标签: javascript jquery html

我正在使用javascript,我想根据文本框中的内容更改html代码。但是我有从前一页传递并放入输入的值。但是html代码没有触发,因为它使用.keyup函数,我想知道是否可以在没有键盘功能的情况下执行javascript而不改变文本。

我的代码

<div>
<label>Name</label><br />
<input type="text" id="name" name="name" onChange="NameCheck();"/>
<span class="error" id="namecheck"></span>
    </div>

 $(document).ready(function () {
  $("#name").keyup(NameCheck);
 });

   function NameCheck() {
   var password = $("#name").val();

   if (password == ""){
    $("#namecheck").html("Name is Blank");
     $("#namecheck").css('color', 'red');
    return false;
   }else{
    $("#namecheck").html("Name Is Valid");
     $("#namecheck").css('color', 'green');
    return true;
   }
   }

2 个答案:

答案 0 :(得分:1)

检查这个jsfiddle,这是你想要的一个有效例子!请注意,您不需要onchange方法,因为您使用的是jquery的keyup

所以你的代码应该是这样的: JS:

$(document).ready(function () {
    $("#name").keyup(function () {
        NameCheck();
    });
    NameCheck();
});

function NameCheck() {
        var password = $("#name").val();

        if (password == "") {
            $("#namecheck").html("Name is Blank");
            $("#namecheck").css('color', 'red');
        } else {
            $("#namecheck").html("Name Is Valid");
            $("#namecheck").css('color', 'green');
        }
    }

HTML:

<div>
    <label>Name</label>
    <br />
    <input type="text" id="name" name="name" />
    <span class="error" id="namecheck"></span>
</div>

答案 1 :(得分:0)

虽然您应该重新构建代码以不使用全局变量,但如果要在页面加载时调用NameCheck(),请在事件绑定后调用它,例如:

$(document).ready(function () {
  $("#name").keyup(NameCheck);
  NameCheck();
});