【问题标题】:OnBlur Assignment to Function in JavascriptJavascript 中对函数的 OnBlur 赋值
【发布时间】:2011-09-25 19:55:51
【问题描述】:

我有这样的代码;

<script type="text/javascript">

var ID= document.getElementById('customfield_10033');
var IDNumber= document.getElementById('customfield_10033').value; 

    ID.onblur=function(IDNumber)
{

    if ((IDNumber!="") && (IDNumber.length!=11)){
    alert("Your ID number should 11 digits.");
}

但是当我输入 11 位数的 ID 号码时,会显示警报功能。但它不应该。

我认为我做错了将 Onblur 属性分配给函数.. ID.onblur=function(IDNumber)

如何修复此代码?

【问题讨论】:

    标签: javascript function scripting variable-assignment onblur


    【解决方案1】:

    您在分配事件处理程序时定义IDNumber(因此它可能会保存您设置的字段默认值),但您几乎肯定希望在模糊事件发生时定义它

    移动

    var IDNumber= document.getElementById('customfield_10033').value;
    

    在您的事件处理函数内部。

    (由于您已经引用了该元素,因此使用var IDNumber = ID.value; 也会更有效)

    【讨论】:

      【解决方案2】:

      你应该有这样的东西:

      ID.onblur = function(IDNumber)
      {
          var IDNumber = ID.value; 
          if (IDNumber !== "" && IDNumber.length !== 11)
          {
              alert("Your ID number should 11 digits.");
          }
      }
      

      通过将value 分配给变量,您可以放置​​静态数据,而不是指向该值的指针,因此您必须每次都读取“实时”值。

      【讨论】:

        【解决方案3】:

        您忘记关闭 if 语句。试试这个:

        if ((IDNumber!="") && (IDNumber.length!=11)) {
            alert("Your ID number should 11 digits.");
        }
        

        问候, 托马斯

        【讨论】:

        • 我拿了你的代码在jsfiddle中运行,发现少了一个括号。有时错误就是这么简单,所以我只是想让你知道。我没有将此作为自鸣得意的评论或类似的东西发布。
        猜你喜欢
        • 2019-10-21
        • 2011-01-20
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-06
        相关资源
        最近更新 更多